added support for non-blocking enqueue