rather than return it. There was an issue where the async thread cleanup code finished before bdberl_tpool_run returned and wrote the address of a freed TPoolJob structure into the ErlDrvPort.