static int globus_l_xio_pipe_activate(void) { int rc; GlobusXIOName(globus_l_xio_pipe_activate); GlobusDebugInit(GLOBUS_XIO_PIPE, TRACE INFO); GlobusXIOPipeDebugEnter(); rc = globus_module_activate(GLOBUS_XIO_SYSTEM_MODULE); if(rc != GLOBUS_SUCCESS) { goto error_activate; } # ifdef _WIN32 xio_l_pipe_attr_default.infd = GetStdHandle(STD_INPUT_HANDLE); xio_l_pipe_attr_default.outfd = GetStdHandle(STD_OUTPUT_HANDLE); # endif GlobusXIORegisterDriver(pipe); GlobusXIOPipeDebugExit(); return GLOBUS_SUCCESS; error_activate: GlobusXIOPipeDebugExitWithError(); GlobusDebugDestroy(GLOBUS_XIO_PIPE); return rc; }
static int globus_l_xio_popen_activate(void) { int rc; GlobusXIOName(globus_l_xio_popen_activate); GlobusDebugInit(GLOBUS_XIO_POPEN, TRACE INFO); GlobusXIOPOpenDebugEnter(); rc = globus_module_activate(GLOBUS_XIO_SYSTEM_MODULE); if(rc != GLOBUS_SUCCESS) { goto error_activate; } GlobusXIORegisterDriver(popen); GlobusXIOPOpenDebugExit(); return GLOBUS_SUCCESS; error_activate: GlobusXIOPOpenDebugExitWithError(); GlobusDebugDestroy(GLOBUS_XIO_POPEN); return rc; }
int globus_i_xio_system_common_deactivate(void) { GlobusXIOName(globus_i_xio_system_common_deactivate); GlobusXIOSystemDebugEnter(); globus_module_deactivate(GLOBUS_XIO_MODULE); GlobusXIOSystemDebugExit(); GlobusDebugDestroy(GLOBUS_XIO_SYSTEM); return GLOBUS_SUCCESS; }
static int globus_l_xio_pipe_deactivate(void) { GlobusXIOName(globus_l_xio_pipe_deactivate); GlobusXIOPipeDebugEnter(); GlobusXIOUnRegisterDriver(pipe); globus_module_deactivate(GLOBUS_XIO_SYSTEM_MODULE); GlobusXIOPipeDebugExit(); GlobusDebugDestroy(GLOBUS_XIO_PIPE); return GLOBUS_SUCCESS; }
static int globus_l_job_manager_module_deactivate(void) { globus_mutex_lock(&globus_l_job_manager_mutex); shutdown_called = GLOBUS_TRUE; while (callback_count > 0) { globus_cond_wait(&globus_l_job_manager_cond, &globus_l_job_manager_mutex); } globus_mutex_unlock(&globus_l_job_manager_mutex); GlobusDebugDestroy(SEG_JOB_MANAGER); globus_module_deactivate(GLOBUS_COMMON_MODULE); return 0; }
int globus_i_xio_system_common_activate(void) { GlobusXIOName(globus_i_xio_system_common_activate); GlobusDebugInit(GLOBUS_XIO_SYSTEM, TRACE DATA INFO RAW); GlobusXIOSystemDebugEnter(); /* I am going to leave this memory around after deactivation. To safely * destroy them, I would need a lot more synchronization of kicked out * callbacks */ if(globus_module_activate(GLOBUS_XIO_MODULE) != GLOBUS_SUCCESS) { goto error_activate; } if(!globus_l_xio_system_memory_initialized) { globus_l_xio_system_memory_initialized = GLOBUS_TRUE; globus_memory_init( &globus_i_xio_system_op_info_memory, sizeof(globus_i_xio_system_op_info_t), 10); globus_memory_init( &globus_i_xio_system_iov_memory, sizeof(struct iovec) * 10, 10); } globus_l_xio_iov_max = -1; #ifdef _SC_IOV_MAX if (globus_l_xio_iov_max == -1) { /* If this returns -1, the limit might be indefinite if errno is * unchanged, but that doesn't mean infinite. It's unclear what * one is to do in that case */ globus_l_xio_iov_max = sysconf(_SC_IOV_MAX); } #endif #ifdef IOV_MAX if (globus_l_xio_iov_max == -1) { globus_l_xio_iov_max = IOV_MAX; } #endif #ifdef _XOPEN_IOV_MAX if (globus_l_xio_iov_max == -1) { globus_l_xio_iov_max = _XOPEN_IOV_MAX; } #endif if (globus_l_xio_iov_max == -1) { globus_l_xio_iov_max = 16; } GlobusXIOSystemDebugExit(); return GLOBUS_SUCCESS; error_activate: GlobusXIOSystemDebugExitWithError(); GlobusDebugDestroy(GLOBUS_XIO_SYSTEM); return GLOBUS_FAILURE; }