ngx_cycle_s -- 2




初始化收尾工作至此,我们的 ngx_init_cycle 函数已经执行到了尾声,这也意味着,初始化工作即将结束,那么,让我们来一起看看都有哪些工作需要在最后处理吧释放 old_cycle 中的共享内存/* close and delete stuff that lefts from an old cycle */ /* free the unnecessary shared memory */ opart = &old_cycle->shared_memory.part; oshm_zone = opart->elts; for (i = 0; /* void */ ; i++) { if (i >= opart->nelts) { if (opart->next == NULL) { goto old_shm_zone_done; } opart = opart->next; oshm_zone = opart->elts; i = 0; } part = &cycle->shared_memory.part; shm_zone = part->elts; for (n = 0; /* void */ ; n++) {
#技术帖    #network    #龙潭书斋    #服务器   
创建 socketfd,并且设置为监听状态作为一个web服务器,初始化中最重要的一步终于到来了// 为 cycle 中的每个监听目标创建 socket,并设置为监听状态 if (ngx_open_listening_sockets(cycle) != NGX_OK) { goto failed; } ngx_open_listening_sockets在这个函数中,有我们熟悉的 TCP 服务端初始化到监听状态的代码// ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle) // 创建 socket 并设置为监听状态 {{{ ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle) { int reuseaddr; ngx_uint_t i, tries, failed; ngx_err_t err; ngx_log_t *log; ngx_socket_t s; ngx_listening_t *ls; reuseaddr = 1; #if (NGX_SUPPRESS_WARN)
#技术帖    #network    #c语言    #socket   



京ICP备15018585号