void vnode_write_queue_handle_write(work_queue_t *wq) { void *node_data = NULL; while ( (node_data = dequeue_work(wq)) != NULL ){ vnode_write_queue_entry_t *entry = (vnode_write_queue_entry_t*)node_data; session_t *session = entry->session; object_t *object = entry->object; zfree(entry); server_write_to_storage(SERVER(session), object); /* FIXME 2014-10-10 18:57:20 */ __sync_add_and_fetch(&session->finished_works, 1); /*session_response(session, RESULT_SUCCESS);*/ /*uint32_t total_committed = __sync_add_and_fetch(&vnode->total_committed, 1);*/ /*if ( total_committed > 800 ) {*/ /*__sync_sub_and_fetch(&vnode->total_committed, total_committed);*/ /*fsync(vnode->logFile);*/ /*kvdb_flush(vnode->kvdb);*/ /*}*/ /* FIXME 2014-10-10 18:56:55 */ /*session_response(session, RESULT_SUCCESS);*/ sched_yield(); } }
void recv_queue_handle_request(work_queue_t *wq) { void *nodeData = NULL; while ( (nodeData = dequeue_work(wq)) != NULL ){ recv_queue_process_sockbuf((sockbuf_t*)nodeData); } }
/* ==================== send_queue_handle_response() ==================== */ void send_queue_handle_response(work_queue_t *wq) { void *nodeData = NULL; while ( (nodeData = dequeue_work(wq)) != NULL ){ send_queue_process_sockbuf((sockbuf_t*)nodeData); } }
/* ==================== dequeue_recv_queue() ==================== */ sockbuf_t *dequeue_recv_queue(session_t *session) { work_queue_t *wq = get_recv_queue_by_session(SERVER(session), session); if ( wq != NULL ) { return dequeue_work(wq); } return NULL; }