static void swProcessPool_free(swProcessPool *pool) { int i; swPipe *_pipe; if (!pool->use_msgqueue) { for (i = 0; i < pool->worker_num; i++) { _pipe = &pool->pipes[i]; _pipe->close(_pipe); } sw_free(pool->pipes); } else if (pool->msgqueue_key == 0) { pool->queue->remove = 1; swMsgQueue_free(pool->queue); } if (pool->map) { swHashMap_free(pool->map); } }
static PHP_METHOD(swoole_process, freeQueue) { swWorker *process = swoole_get_object(getThis()); if (process->queue) { process->queue->remove = 1; swMsgQueue_free(process->queue); efree(process->queue); process->queue = NULL; RETURN_TRUE; } else { RETURN_FALSE; } }
static PHP_METHOD(swoole_process, __destruct) { swWorker *process = swoole_get_object(getThis()); swPipe *_pipe = process->pipe_object; if (_pipe) { _pipe->close(_pipe); efree(_pipe); } if (process->queue) { swMsgQueue_free(process->queue); efree(process->queue); } efree(process); }
static void swProcessPool_free(swProcessPool *pool) { int i; swPipe *_pipe; if (pool->pipes) { for (i = 0; i < pool->worker_num; i++) { _pipe = &pool->pipes[i]; _pipe->close(_pipe); } sw_free(pool->pipes); } if (pool->use_msgqueue == 1 && pool->msgqueue_key == 0) { pool->queue->remove = 1; swMsgQueue_free(pool->queue); } if (pool->stream) { if (pool->stream->socket) { unlink(pool->stream->socket_file); sw_free((void*) pool->stream->socket_file); } if (pool->stream->socket) { close(pool->stream->socket); } } if (pool->map) { swHashMap_free(pool->map); } }
static PHP_METHOD(swoole_msgqueue, destory) { swMsgQueue *queue = swoole_get_object(getThis()); SW_CHECK_RETURN(swMsgQueue_free(queue)); }