Changes

0.1.1

0.1.0

Post-tag fix (#1): mutex-unlock skipped under Eio cancellation

Every Mutex.lock t.mutex; ...; Mutex.unlock t.mutex pair in Kafka_producer (delivery callback dispatch, pending-promise bookkeeping in produce_await, and cleanup in close) and the poll_exit_r resolution in Kafka_consumer's poll_fiber skipped the unlock/resolve step if an Eio.Cancel.Cancelled (or any other exception) was raised between the lock and unlock — leaving the mutex held forever, or a fiber awaiting poll_exit_r hanging forever after close. Fixed by wrapping every such critical section in Fun.protect ~finally, so the unlock/resolve always runs regardless of how the protected code exits.