Hi DBI Devs, Please review Pull Request #185 <https://github.com/perl5-dbi/dbi/pull/185>, which adds non-blocking asynchronous operations to the DBI core.
This pull request addresses two open issues: - *Issue #52 <https://github.com/perl5-dbi/dbi/issues/52>*: Non-blocking statement execution and event loop readiness hooks. - *Issue #183 <https://github.com/perl5-dbi/dbi/issues/183>*: Asynchronous execution and event-driven driver dispatch. Summary of Commits The PR is organized into 4 directed commits: 1. *Core C/XS Flags & Macros* (DBIXS.h, DBI.xs): - Allocates upper-byte bit flags (DBIcf_Async, DBIcf_AsyncWantRead, DBIcf_AsyncWantWrite, etc.) and DBI_E_WOULDBLOCK (-1). - Implements get/set attribute handlers for Async, AsyncWatcher, AsyncErrorDetails, and concurrency locks. 2. *Perl Dispatcher & PurePerl Emulation* (DBI.pm, Perl.xs, lib/DBI/PurePerl.pm): - Registers async_read_ready and async_write_ready in %DBI::DBI_methods. - Adds :async export tag, SQLSTATE IM001 fallback stubs, clone() handle rules, and PurePerl emulation mapping. 3. *Reference Mock Driver* (lib/DBD/MockAsync.pm): - Implements DBD::MockAsync to simulate non-blocking statement execution, network latency, handle polling, and error conditions. 4. *Unit Tests & Build Manifests* (t/18async.t, t/19mock_async.t, Makefile.PL, MANIFEST): - Adds unit test coverage for statement handle lifecycles, readiness checks, error handling, and event loop integration. Pull Request: https://github.com/perl5-dbi/dbi/pull/185 Thanks, CJCOLLIER
