On Mon, 16 Apr 2001 [EMAIL PROTECTED] wrote: > My biggest problem with passing in a void *, and using it as the dlhandle > to close, is that it won't work in error cases on some platforms. OS/2 > requires that we save the error message when the error happens, at least > that is my understanding. This means that if there is an error, we will > need to store that string someplace.
wait a sec, this is true for the load, but not unload, os2/dso.c: static apr_status_t dso_cleanup(void *thedso) { apr_dso_handle_t *dso = thedso; int rc; if (dso->handle == 0) return APR_SUCCESS; rc = DosFreeModule(dso->handle); if (rc == 0) dso->handle = 0; return APR_OS2_STATUS(rc); } i still very much want to avoid using a pool to close these handles.