Exemplo n.º 1
0
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();
    }
}
Exemplo n.º 2
0
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);
    }
}
Exemplo n.º 3
0
/* ==================== 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); 
    }
}
Exemplo n.º 4
0
/* ==================== 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;
}