您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sw_free函数代码示例

51自学网 2021-06-03 08:34:31
  C++
这篇教程C++ sw_free函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sw_free函数的典型用法代码示例。如果您正苦于以下问题:C++ sw_free函数的具体用法?C++ sw_free怎么用?C++ sw_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sw_free函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: swDataBuffer_clear

int swDataBuffer_clear(swDataBuffer *data_buffer, int fd){	swDataBuffer_item *item = NULL;	swHashMap_add_int(&data_buffer->map, fd, item);	if (item == NULL)	{		swTrace("buffer item not found/n");		return SW_ERR;	}	else	{		swDataBuffer_trunk *trunk = item->head;		swDataBuffer_trunk *will_free_trunk; //保存trunk的指针,用于释放内存		while (trunk != NULL)		{			sw_free(trunk->data);			will_free_trunk = trunk;			trunk = trunk->next;			sw_free(will_free_trunk);		}		swHashMap_del_int(&data_buffer->map, fd);		sw_free(item);	}	return SW_OK;}
开发者ID:ZheYuan,项目名称:swoole,代码行数:25,


示例2: swDataBuffer_flush

int swDataBuffer_flush(swDataBuffer *data_buffer, swDataBuffer_item *item){	if(item->head == NULL)	{		return SW_ERR;	}	item->head->len = 0;	item->tail = item->head;	item->trunk_num = 1;	item->length = 0;	swDataBuffer_trunk *trunk = item->head->next;	swDataBuffer_trunk *will_free_trunk; //保存trunk的指针,用于释放内存	while (trunk!= NULL)	{		trunk->len = 0;		sw_free(trunk->data);		will_free_trunk = trunk;		trunk = trunk->next;    //这里会指向下个指针,所以需要保存		sw_free(will_free_trunk);//		swWarn("will_free_trunk");	}	item->head->next = NULL;	return SW_OK;}
开发者ID:ZheYuan,项目名称:swoole,代码行数:26,


示例3: swFactoryThread_writer_loop

static int swFactoryThread_writer_loop(swThreadParam *param){	swFactory *factory = param->object;	swFactoryThread *this = factory->object;	int pti = param->pti;	int ret;	swEventData *req;	//main loop	while (swoole_running > 0)	{		ret = read(this->writers[pti].evfd, &req, sizeof(&req));		printf("[WriteThread]recv: %d|ret=%d/n", pti, ret);		if (ret > 0)		{			factory->onTask(factory, req);			sw_free(req);		}		else		{			swTrace("[swFactoryThread_writer_loop]read eventfd error");		}	}	//shutdown	close(this->writers[pti].evfd);	sw_free(param);	pthread_exit(SW_OK);	return SW_OK;}
开发者ID:mickelfeng,项目名称:php_swoole,代码行数:29,


示例4: swReactorKqueue_free

static void swReactorKqueue_free(swReactor *reactor){    swReactorKqueue *this = reactor->object;    close(this->epfd);    sw_free(this->events);    sw_free(this);}
开发者ID:leoozhao,项目名称:swoole-src,代码行数:7,


示例5: swFactoryThread_writer_loop

static int swFactoryThread_writer_loop(swThreadParam *param){	swFactory *factory = param->object;	swFactoryThread *this = factory->object;	int pti = param->pti;	swEventData *req;	uint64_t flag;	//main loop	while (swoole_running > 0)	{		if(swRingBuffer_pop(&(this->buffers[pti]), (void **)&req)==0)		{			factory->onTask(factory, req);			sw_free(req);		}		else		{			read(this->writers[pti].evfd, &flag, sizeof(flag));		}	}	factory->running = 0;	//shutdown	close(this->writers[pti].evfd);	sw_free(param);	pthread_exit(SW_OK);	return SW_OK;}
开发者ID:29n,项目名称:php_swoole,代码行数:28,


示例6: swPort_free

void swPort_free(swListenPort *port){#ifdef SW_USE_OPENSSL    if (port->ssl)    {        if (port->ssl_context)        {            swSSL_free_context(port->ssl_context);        }        sw_free(port->ssl_option.cert_file);        sw_free(port->ssl_option.key_file);        if (port->ssl_option.client_cert_file)        {            sw_free(port->ssl_option.client_cert_file);        }    }#endif    close(port->sock);    //remove unix socket file    if (port->type == SW_SOCK_UNIX_STREAM || port->type == SW_SOCK_UNIX_DGRAM)    {        unlink(port->host);    }}
开发者ID:haixingdev,项目名称:swoole-src,代码行数:26,


示例7: swReactorEpoll_free

void swReactorEpoll_free(swReactor *reactor){    swReactorEpoll *object = reactor->object;    close(object->epfd);    sw_free(object->events);    sw_free(object);}
开发者ID:nevernet,项目名称:swoole,代码行数:7,


示例8: swBuffer_flush

int swBuffer_flush(swBuffer *buffer){	if(buffer->head == NULL)	{		return SW_ERR;	}	buffer->head->length = 0;	buffer->tail = buffer->head;	buffer->trunk_num = 1;	buffer->length = 0;	swBuffer_trunk *trunk = buffer->head->next;	swBuffer_trunk *will_free_trunk; //保存trunk的指针,用于释放内存	while (trunk!= NULL)	{		trunk->length = 0;		sw_free(trunk->data);		will_free_trunk = trunk;		trunk = trunk->next;    //这里会指向下个指针,所以需要保存		sw_free(will_free_trunk);//		swWarn("will_free_trunk");	}	buffer->head->next = NULL;	return SW_OK;}
开发者ID:amphisbe,项目名称:swoole,代码行数:27,


示例9: swTimer_del

int swTimer_del(swTimer *timer, swTimer_node *tnode){    if (tnode->remove)    {        return SW_FALSE;    }    if (SwooleG.timer._current_id > 0 && tnode->id == SwooleG.timer._current_id)    {        tnode->remove = 1;        return SW_TRUE;    }    if (swHashMap_del_int(timer->map, tnode->id) < 0)    {        return SW_ERR;    }    //remove from min-heap    swHeap_remove(timer->heap, tnode->heap_node);    if (tnode->heap_node)    {        sw_free(tnode->heap_node);    }    sw_free(tnode);    timer->num --;    return SW_TRUE;}
开发者ID:netcode,项目名称:swoole-src,代码行数:25,


示例10: swReactorEpoll_free

void swReactorEpoll_free(swReactor *reactor){	swReactorEpoll *this = reactor->object;	close(this->epfd);	sw_free(this->events);	sw_free(this);}
开发者ID:Aaron-Teng,项目名称:swoole,代码行数:7,


示例11: swDataBuffer_clear

int swDataBuffer_clear(swDataBuffer *data_buffer, int fd){	swDataBuffer_item *item = NULL;	HASH_FIND_INT(data_buffer->ht, &fd, item);	if (item == NULL)	{		swTrace("buffer item not found/n");		return SW_ERR;	}	else	{		swDataBuffer_trunk *trunk = item->first;		swDataBuffer_trunk *will_free_trunk; //保存trunk的指针,用于释放内存		while (trunk != NULL)		{			sw_free(trunk->data);			will_free_trunk = trunk;			trunk = trunk->next;			sw_free(will_free_trunk);		}		HASH_DEL(data_buffer->ht, item);		sw_free(item);	}	return SW_OK;}
开发者ID:899,项目名称:swoole,代码行数:25,


示例12: swFactoryThread_writer_loop

static int swFactoryThread_writer_loop(swThreadParam *param){	swFactory *factory = param->object;	swServer *serv = factory->ptr;	swFactoryThread *this = factory->object;	int pti = param->pti;	int ret;	swEventData *req;	uint64_t flag;	//cpu affinity setting#if HAVE_CPU_AFFINITY	if (serv->open_cpu_affinity)	{		cpu_set_t cpu_set;		CPU_ZERO(&cpu_set);		CPU_SET(pti % SW_CPU_NUM, &cpu_set);		if (0 != pthread_setaffinity_np(pthread_self(), sizeof(cpu_set), &cpu_set))		{			swTrace("pthread_setaffinity_np set fail/n");		}	}#endif	if (serv->onWorkerStart != NULL)	{		serv->onWorkerStart(serv, pti);	}	swSingalNone();	//main loop	while (swoole_running > 0)	{		if (swRingQueue_pop(&(this->queues[pti]), (void **) &req) == 0)		{			factory->last_from_id = req->info.from_id;			factory->onTask(factory, req);			sw_free(req);		}		else		{			ret = this->writers[pti].evfd.read(&this->writers[pti].evfd, &flag, sizeof(flag));			if (ret < 0)			{				swTrace("read fail.errno=%d", errno);			}		}	}	//shutdown	this->writers[pti].evfd.close(&this->writers[pti].evfd);	if (serv->onWorkerStop != NULL)	{		serv->onWorkerStop(serv, pti);	}	sw_free(param);	pthread_exit(SW_OK);	return SW_OK;}
开发者ID:kedyyan,项目名称:swoole,代码行数:58,


示例13: swTimer_del

void swTimer_del(swTimer *timer, swTimer_node *tnode){    swHeap_remove(timer->heap, tnode->heap_node);    if (tnode->heap_node)    {        sw_free(tnode->heap_node);    }    sw_free(tnode);}
开发者ID:akrick,项目名称:swoole-src,代码行数:9,


示例14: swFactoryThread_shutdown

int swFactoryThread_shutdown(swFactory *factory){	swoole_running = 0;	swFactoryThread *this = factory->object;	sw_free(this->writers);	sw_free(this->queues);	sw_free(this);	return SW_OK;}
开发者ID:kedyyan,项目名称:swoole,代码行数:9,


示例15: swProcessPool_free

static void swProcessPool_free(swProcessPool *pool){	int i;	swPipe *pipe;	for (i = 0; i < pool->worker_num; i++)	{		pipe = &pool->pipes[i];		pipe->close(pipe);	}	sw_free(pool->workers);	sw_free(pool->pipes);	swHashMap_free(&pool->map);}
开发者ID:4399data,项目名称:swoole,代码行数:13,


示例16: swTimeWheel_free

void swTimeWheel_free(swTimeWheel *tw){    int i;    for (i = 0; i < tw->size; i++)    {        if (tw->wheel[i] != NULL)        {            swHashMap_free(tw->wheel[i]);            tw->wheel[i] = NULL;        }    }    sw_free(tw->wheel);    sw_free(tw);}
开发者ID:netcode,项目名称:swoole-src,代码行数:14,


示例17: swTimer_add

static swTimer_node* swTimer_add(swTimer *timer, int _msec, int interval, void *data, swTimerCallback callback){    swTimer_node *tnode = sw_malloc(sizeof(swTimer_node));    if (!tnode)    {        swSysError("malloc(%ld) failed.", sizeof(swTimer_node));        return NULL;    }    int64_t now_msec = swTimer_get_relative_msec();    if (now_msec < 0)    {        sw_free(tnode);        return NULL;    }    tnode->data = data;    tnode->type = SW_TIMER_TYPE_KERNEL;    tnode->exec_msec = now_msec + _msec;    tnode->interval = interval ? _msec : 0;    tnode->remove = 0;    tnode->callback = callback;    tnode->round = timer->round;    if (timer->_next_msec < 0 || timer->_next_msec > _msec)    {        timer->set(timer, _msec);        timer->_next_msec = _msec;    }    tnode->id = timer->_next_id++;    if (unlikely(tnode->id < 0))    {        tnode->id = 1;        timer->_next_id = 2;    }    timer->num++;    tnode->heap_node = swHeap_push(timer->heap, tnode->exec_msec, tnode);    if (tnode->heap_node == NULL)    {        sw_free(tnode);        return NULL;    }    swTrace("id=%ld, exec_msec=%" PRId64 ", msec=%d, round=%" PRIu64, tnode->id, tnode->exec_msec, _msec, tnode->round);    swHashMap_add_int(timer->map, tnode->id, tnode);    return tnode;}
开发者ID:didiwuliu,项目名称:swoole-src,代码行数:48,


示例18: swConnection_get_in_buffer

SWINLINE swBuffer_trunk* swConnection_get_in_buffer(swConnection *conn){	swBuffer_trunk *trunk = NULL;	swBuffer *buffer;	if (conn->in_buffer == NULL)	{		buffer = swBuffer_new(SW_BUFFER_SIZE);		//buffer create failed		if (buffer == NULL)		{			return NULL;		}		//new trunk		trunk = swBuffer_new_trunk(buffer, SW_TRUNK_DATA, buffer->trunk_size);		if (trunk == NULL)		{			sw_free(buffer);			return NULL;		}		conn->in_buffer = buffer;	}	else	{		buffer = conn->in_buffer;		trunk = buffer->tail;		if (trunk == NULL || trunk->length == buffer->trunk_size)		{			trunk = swBuffer_new_trunk(buffer, SW_TRUNK_DATA, buffer->trunk_size);		}	}	return trunk;}
开发者ID:woyear,项目名称:swoole,代码行数:33,


示例19: aio_onReadFileCompleted

static void aio_onReadFileCompleted(swAio_event *event){    zval *retval = NULL;    zval *result = NULL;    SW_MAKE_STD_ZVAL(result);    if (event->ret < 0)    {        SwooleG.error = event->error;        ZVAL_BOOL(result, 0);    }    else    {        ZVAL_STRINGL(result, event->buf, event->ret);        sw_free(event->buf);    }    php_context *context = (php_context *) event->object;    int ret = coro_resume(context, result, &retval);    if (ret == CORO_END && retval)    {        sw_zval_ptr_dtor(&retval);    }    sw_zval_ptr_dtor(&result);    efree(event->req);    efree(context);}
开发者ID:didiwuliu,项目名称:swoole-src,代码行数:27,


示例20: swServer_reactor_thread_onWrite

int swServer_reactor_thread_onWrite(swReactor *reactor, swDataHead *ev){	swServer *serv = SwooleG.serv;	swConnection *conn = swServer_get_connection(serv, ev->fd);	int ret, sendn;	if (conn->output.send_file != NULL)	{		swTask_sendfile *task = conn->output.send_file;		sendn = (task->filesize - task->offset > SW_SENDFILE_TRUNK) ? SW_SENDFILE_TRUNK : task->filesize - task->offset;		ret = sendfile(ev->fd, task->fd, &task->offset, sendn);		//swWarn("ret=%d|task->offset=%ld|sendn=%d|filesize=%ld", ret, task->offset, sendn, task->filesize);		if (ret < 0)		{			swWarn("sendfile failed. Error: %s[%d]", strerror(errno), errno);			return SW_ERR;		}		if (task->offset >= task->filesize)		{			reactor->set(reactor, ev->fd, SW_EVENT_TCP | SW_EVENT_READ);			conn->output.send_file = NULL;			close(task->fd);			sw_free(task);		}	}	return SW_OK;}
开发者ID:ZheYuan,项目名称:swoole,代码行数:27,


示例21: swServer_poll_loop

/** * Main Loop */static int swServer_poll_loop(swThreadParam *param){	swServer *serv = param->object;	int ret, pti = param->pti;	swReactor *reactor = &(serv->threads[pti].reactor);	struct timeval timeo;	ret = swReactorEpoll_create(reactor, (serv->max_conn / serv->poll_thread_num) + 1);	if (ret < 0)	{		return SW_ERR;	}	timeo.tv_sec = serv->timeout_sec;	timeo.tv_usec = serv->timeout_usec; //300ms	reactor->ptr = serv;	reactor->setHandle(reactor, SW_FD_CLOSE, swServer_poll_onClose);	//Thread mode must copy the data.	//will free after onFinish	if(serv->factory_mode == SW_MODE_THREAD)	{		reactor->setHandle(reactor, SW_FD_CONN, swServer_poll_onReceive2);	}	else	{		reactor->setHandle(reactor, SW_FD_CONN, swServer_poll_onReceive);	}	//main loop	reactor->wait(reactor, &timeo);	//shutdown	reactor->free(reactor);	sw_free(param);	return SW_OK;}
开发者ID:mickelfeng,项目名称:php_swoole,代码行数:36,


示例22: swServer_poll_onReceive2

static int swServer_poll_onReceive2(swReactor *reactor, swEvent *event){	int ret;	swServer *serv = reactor->ptr;	swFactory *factory = &(serv->factory);	swEventData *buf = sw_malloc(sizeof(swEventData));	if(buf==NULL)	{		swTrace("Malloc fail/n");		return SW_ERR;	}	bzero(buf->data, sizeof(buf->data));	ret = swRead(event->fd, buf->data, SW_BUFFER_SIZE);	if (ret < 0)	{		swTrace("Receive Error.Fd=%d.From=%d/n", event->fd, event->from_id);		return SW_ERR;	}	else if (ret == 0)	{		swTrace("Close Event.FD=%d|From=%d/n", event->fd, event->from_id);		sw_free(buf);		return swServer_close(serv, event);	}	else	{		buf->fd = event->fd;		buf->len = ret;		buf->from_id = event->from_id;		//swTrace("recv: %s|fd=%d|ret=%d|errno=%d/n", buf->data, event->fd, ret, errno);		factory->dispatch(factory, buf);	}	return SW_OK;}
开发者ID:mickelfeng,项目名称:php_swoole,代码行数:34,


示例23: swTable_compress_list

static void swTable_compress_list(swTable *table){    table->lock.lock(&table->lock);    swTableRow **tmp = sw_malloc(sizeof(swTableRow *) * table->size);    if (!tmp)    {        swWarn("malloc() failed, cannot compress the jump table.");        goto unlock;    }    int i, tmp_i = 0;    for (i = 0; i < table->list_n; i++)    {        if (table->rows_list[i] != NULL)        {            tmp[tmp_i] = table->rows_list[i];            tmp[tmp_i]->list_index = tmp_i;            tmp_i++;        }    }    memcpy(table->rows_list, tmp, sizeof(swTableRow *) * tmp_i);    sw_free(tmp);    table->list_n = tmp_i;    unlock: table->lock.unlock(&table->lock);}
开发者ID:WhoAmMe,项目名称:swoole,代码行数:28,


示例24: swClient_free

void swClient_free(swClient *cli){    assert(cli->socket->fd != 0);    //remove from reactor    if (!cli->socket->closed)    {        cli->close(cli);    }    if (cli->socket->out_buffer)    {        swBuffer_free(cli->socket->out_buffer);        cli->socket->out_buffer = NULL;    }    if (cli->socket->in_buffer)    {        swBuffer_free(cli->socket->in_buffer);        cli->socket->in_buffer = NULL;    }    bzero(cli->socket, sizeof(swConnection));    if (cli->async)    {        cli->socket->removed = 1;    }    else    {        sw_free(cli->socket);    }}
开发者ID:google2013,项目名称:swoole-src,代码行数:28,


示例25: swPipeEventfd_close

static int swPipeEventfd_close(swPipe *p){	int ret;	ret = close(((swPipeEventfd *)(p->object))->event_fd);	sw_free(p->object);	return ret;}
开发者ID:EtcDot,项目名称:swoole-src,代码行数:7,


示例26: swFactoryThread_onTask

static int swFactoryThread_onTask(swThreadPool *pool, void *data, int len){    swFactory *factory = pool->ptr2;    int ret = factory->onTask(factory, (swEventData*) data);    sw_free(data);    return ret;}
开发者ID:190235047,项目名称:swoole-src,代码行数:7,


示例27: swProcessPool_free

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);    }}
开发者ID:LinkedDestiny,项目名称:swoole-src,代码行数:25,


示例28: swTimeWheel_new

swTimeWheel* swTimeWheel_new(uint16_t size){    swTimeWheel *tw = sw_malloc(sizeof(swTimeWheel));    if (!tw)    {        swWarn("malloc(%ld) failed.", sizeof(swTimeWheel));        return NULL;    }    tw->size = size;    tw->current = 0;    tw->wheel = sw_calloc(size, sizeof(void*));    if (tw->wheel == NULL)    {        swWarn("malloc(%ld) failed.", sizeof(void*) * size);        sw_free(tw);        return NULL;    }    int i;    for (i = 0; i < size; i++)    {        tw->wheel[i] = swHashMap_new(16, NULL);        if (tw->wheel[i] == NULL)        {            swTimeWheel_free(tw);            return NULL;        }    }    return tw;}
开发者ID:netcode,项目名称:swoole-src,代码行数:31,


示例29: swWorker_create

int swWorker_create(swWorker *worker){	/**	 * Create shared memory storage	 */	void *store = sw_shm_malloc(SwooleG.serv->buffer_output_size);	if (store == NULL)	{		swWarn("malloc for worker->store failed.");		return SW_ERR;	}	swPipe *worker_notify = sw_malloc(sizeof(swPipe));	if (worker_notify == NULL)	{		swWarn("malloc for worker->notify failed.");		sw_shm_free(store);		return SW_ERR;	}	/**	 * Create notify pipe	 */	if (swPipeNotify_auto(worker_notify, 1, 0))	{		sw_shm_free(store);		sw_free(worker_notify);		return SW_ERR;	}	worker->notify = worker_notify;	worker->store.ptr = store;	worker->store.lock = 0;	return SW_OK;}
开发者ID:1060460048,项目名称:swoole,代码行数:35,


示例30: swPipeUnsock_close

void swPipeUnsock_close(swPipe *p){	swPipeUnsock *this = p->object;	close(this->socks[0]);	close(this->socks[1]);	sw_free(this);}
开发者ID:Aaron-Teng,项目名称:swoole,代码行数:7,



注:本文中的sw_free函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ sw_malloc函数代码示例
C++ sw_calloc函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。