Skip to content

Commit

Permalink
Lock spidermonkey_drv.so in memory so NSPR thread cleanup code runs.
Browse files Browse the repository at this point in the history
Fixes SEGV under R15B
  • Loading branch information
Jon Meredith committed Jun 15, 2012
1 parent 8006549 commit 11557da
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions c_src/spidermonkey_drv.c
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -193,6 +193,13 @@ static ErlDrvData start(ErlDrvPort port, char *cmd) {
retval->atom_ok = driver_mk_atom((char *) "ok"); retval->atom_ok = driver_mk_atom((char *) "ok");
retval->atom_error = driver_mk_atom((char *) "error"); retval->atom_error = driver_mk_atom((char *) "error");
retval->atom_unknown_cmd = driver_mk_atom((char *) "unknown_command"); retval->atom_unknown_cmd = driver_mk_atom((char *) "unknown_command");

/* Lock the driver in memory. NSPR registers some thread cleanup
** code in _pt_thread_death on the async thread pool which
** gets called after spidermonkey_drv.so is unloaded on R15B
*/
driver_lock_driver(port);

return (ErlDrvData) retval; return (ErlDrvData) retval;
} }


Expand Down

0 comments on commit 11557da

Please sign in to comment.