Jul 20, 2023

Lazy way to wrap blocking code and programs

If you need nonblocking access to an external program, or want to execute some blocking code in a separate process, but you don’t want to write a wrapper module or some POEWheelRun boilerplate code, then POEQuickie can help.

You just specify what you’re interested in stdout, stderr, and/or exit code, and POEQuickie will handle the rest in a sensible way.

It has some convenience features, such as killing processes after a timeout, and storing process-specific context information which will be delivered with every event.

There is also an even lazier API which suspends the execution of your event handler and gives control back to POE while your task is running, the same way LWPUserAgentPOE does.

This is provided by the quickie_* functions which are exported by default.

Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler