A generic non-blocking linked-in driver for interfacing Erlang and C