render_thread_struct.h
author Tero Marttila <terom@fixme.fi>
Wed, 27 Aug 2008 21:30:32 +0300
changeset 41 540737bf6bac
parent 24 8307d28329ae
permissions -rw-r--r--
sending requests, and partial support for receiving -- incomplete, not tested
23
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#ifndef RENDER_THREAD_STRUCT_H
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
#define RENDER_THREAD_STRUCT_H
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
#include <pthread.h>
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
#include <event2/event_struct.h>
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
#include "render_thread.h"
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
#include "render_struct.h"
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
struct render_thread {
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
    int owned_by_me;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
    // the thread identifier
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
    pthread_t thread_id;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
    // the render op, this includes the socket/stream
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
    struct render render_info;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
    
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    // completion callback
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
    render_thread_done_cb cb_func;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    void *cb_arg;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    // what fd to use for completion notification
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
    int notify_fd;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
    // the notification event
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
    struct event ev;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
24
8307d28329ae render_thread works now
Tero Marttila <terom@fixme.fi>
parents: 23
diff changeset
    29
    // did the render fail?
8307d28329ae render_thread works now
Tero Marttila <terom@fixme.fi>
parents: 23
diff changeset
    30
    int err;
8307d28329ae render_thread works now
Tero Marttila <terom@fixme.fi>
parents: 23
diff changeset
    31
23
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
    // already canceled/done?
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
    int is_active;
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
};
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
int render_thread_init (struct render_thread *ctx, struct render *render_info, render_thread_done_cb cb_func, void *cb_arg);
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
void render_thread_cancel (struct render_thread *ctx);
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
void render_thread_deinit (struct render_thread *ctx);
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
31307efd7e78 new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
#endif /* RENDER_THREAD_STRUCT_H */