[erlang-questions] : driver_entry stop() and driver_async() interaction

Raimo Niskanen <>
Fri Nov 7 11:47:59 CET 2008


On Thu, Nov 06, 2008 at 12:22:45PM -0600, Paul Fisher wrote:
> Can anyone comment on this question i sent a few weeks ago?
> 
> When the port owner terminates and there are driver_async() requests 
> scheduled and not yet executed, I am seeing them outstanding at the time 
> of the stop() callback.

We will take a look at it and make it clear in some
documentation and give you an answer. It will take a bit of
code review to be certain...

> 
> 
> Paul Fisher wrote:
> > Question about work scheduled on async threads via driver_async() and
> > still pending (i.e. they are still on the queue to be executed,) when
> > the stop() callback is invoked.  Specifically, assuming smp w/async
> > thread pool and the driver marked ERL_DRV_FLAG_USE_PORT_LOCKING.
> > 
> > Is it the responsibility of the code in the stop() callback to call
> > driver_async_cancel() on each outstanding async work item, or will this
> > be done automatically by the emulator before the call to stop()?
> > 
> > If this is the responsibility of the code in stop(), is it guaranteed
> > that no async work item will be executing or scheduled during the call
> > to the stop() callback?
> > 
> > If no guarantee is made, is holding the PDL necessary and sufficient to
> > guarantee this?
> 
> 
> --
> paul
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list