Releases
v0.4.0
- Improved
Async::Safe.transferto recursively transfer ownership of tracked instance variables.
v0.3.2
- Better error message.
v0.3.0
- Inverted default model: classes are async-safe by default, use
ASYNC_SAFE = falseto enable tracking. - Added flexible
ASYNC_SAFEconstant support: boolean, hash, or array configurations. - Added
Class#async_safe!method for marking classes. - Added
Class#async_safe?(method)method for querying safety. - Added
Class.async_safe_traversefor custom deep transfer traversal (opt-in). - Improved
Async::Safe.transferto use shallow transfer by default with opt-in deep traversal. - Mark built-in collections (
Array,Hash,Set) as single-owner with deep traversal support. - Removed logger feature: always raises
ViolationErrorexceptions. - Removed
Async::Safe::Concurrentmodule: useasync_safe!instead.
v0.2.0
Thread::Queuetransfers ownership of objects popped from it.- Add support for
logger:option inAsync::Safe.enable!which logs violations instead of raising errors.
v0.1.0
- Implement TracePoint-based ownership tracking.
- Add
Async::Safe::Concurrentmodule for marking thread-safe classes. - Add
thread_safeclass method for marking thread-safe methods. - Add
Async::Safe.transferfor explicit ownership transfer - Add violation detection and reporting
- Zero overhead when monitoring is disabled