author | Tero Marttila <terom@fixme.fi> |
Wed, 27 Aug 2008 21:30:32 +0300 | |
changeset 41 | 540737bf6bac |
parent 26 | 6d615203d963 |
permissions | -rw-r--r-- |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
1 |
#include <stdlib.h> |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
#include <arpa/inet.h> |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
#include <unistd.h> |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
4 |
#include <fcntl.h> |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
5 |
#include <errno.h> |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
6 |
#include <assert.h> |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
7 |
|
26
6d615203d963
support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
25
diff
changeset
|
8 |
#include <sys/un.h> /* XXX: for SUN_LEN */ |
6d615203d963
support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
25
diff
changeset
|
9 |
|
4
49edbdf9ebe7
updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents:
3
diff
changeset
|
10 |
#include <event2/event.h> |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
11 |
#include <event2/event_struct.h> |
4
49edbdf9ebe7
updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents:
3
diff
changeset
|
12 |
#include <event2/bufferevent.h> |
49edbdf9ebe7
updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents:
3
diff
changeset
|
13 |
|
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
14 |
#include "render_remote.h" |
26
6d615203d963
support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
25
diff
changeset
|
15 |
#include "common.h" |
6d615203d963
support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
25
diff
changeset
|
16 |
#include "render_struct.h" |
23
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
17 |
#include "render_net.h" |
26
6d615203d963
support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
25
diff
changeset
|
18 |
#include "socket.h" |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
19 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
20 |
struct render_remote { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
21 |
// the socket fd |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
22 |
int sock; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
23 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
24 |
// the event/bufferevent |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
25 |
struct event ev_connect, ev_data; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
26 |
struct bufferevent *bev_data; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
27 |
|
23
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
28 |
// the command |
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
29 |
struct render_cmd render_cmd; |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
30 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
31 |
// have we sent the command yet? |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
32 |
int cmd_sent; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
33 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
34 |
// have we received the EOF? |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
35 |
int have_eof; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
36 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
37 |
// has cb_done/cb_fail/cancel already been called? |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
38 |
int alive; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
39 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
40 |
void (*cb_sent)(void *arg); |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
41 |
void (*cb_data)(struct evbuffer *buf, void *arg); |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
42 |
void (*cb_done)(void *arg); |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
43 |
void (*cb_fail)(void *arg); |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
44 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
45 |
void *cb_arg; |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
46 |
}; |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
47 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
48 |
// internal prototypes |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
49 |
static void _render_remote_free (struct render_remote *ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
50 |
static void _render_remote_do_data (struct render_remote *ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
51 |
static void _render_remote_do_done (struct render_remote *ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
52 |
static void _render_remote_do_fail (struct render_remote *ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
53 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
54 |
static void _render_remote_free (struct render_remote *ctx) { |
16
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
55 |
assert(ctx && !ctx->alive); |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
56 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
57 |
// free the bev_data |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
58 |
if (ctx->bev_data) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
59 |
bufferevent_free(ctx->bev_data); |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
60 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
61 |
// and the events |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
62 |
if (event_pending(&ctx->ev_connect, EV_WRITE, NULL)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
63 |
event_del(&ctx->ev_connect); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
64 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
65 |
if (event_pending(&ctx->ev_data, EV_READ, NULL)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
66 |
event_del(&ctx->ev_data); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
67 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
68 |
// close the socket (ctx->ev_connect remains valid even after we're done with it...) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
69 |
if (ctx->sock) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
70 |
close(ctx->sock); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
71 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
72 |
// free the context structure |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
73 |
free(ctx); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
74 |
} |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
75 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
76 |
static void _render_remote_do_data (struct render_remote *ctx) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
77 |
// if there's data in the buffer, call cb_data |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
78 |
if (evbuffer_get_length(bufferevent_get_input(ctx->bev_data))) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
79 |
ctx->cb_data(EVBUFFER_INPUT(ctx->bev_data), ctx->cb_arg); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
80 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
81 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
82 |
// if we got EOF on the connection and there's no data left in the buffer, call cb_done |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
83 |
if (ctx->have_eof && evbuffer_get_length(bufferevent_get_input(ctx->bev_data)) == 0) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
84 |
_render_remote_do_done(ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
85 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
86 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
87 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
88 |
static void _render_remote_do_done (struct render_remote *ctx) { |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
89 |
assert(ctx->alive); |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
90 |
|
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
91 |
ctx->alive = 0; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
92 |
|
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
93 |
ctx->cb_done(ctx->cb_arg); |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
94 |
} |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
95 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
96 |
static void _render_remote_do_fail (struct render_remote *ctx) { |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
97 |
assert(ctx->alive); |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
98 |
|
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
99 |
ctx->alive = 0; |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
100 |
|
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
101 |
ctx->cb_fail(ctx->cb_arg); |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
102 |
} |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
103 |
|
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
104 |
static void _remote_write (struct bufferevent *bev, void *arg) { |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
105 |
struct render_remote *ctx = arg; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
106 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
107 |
if (!ctx->cmd_sent) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
108 |
// write the render command |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
109 |
if (bufferevent_write(ctx->bev_data, &ctx->render_cmd, sizeof(ctx->render_cmd))) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
110 |
ERROR("bufferevent_write"); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
111 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
112 |
// wait for it to be written out (we get called a second time) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
113 |
ctx->cmd_sent = 1; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
114 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
115 |
} else { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
116 |
// the write buffer was drained, so the render command was write():n |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
117 |
assert(ctx->cb_sent); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
118 |
ctx->cb_sent(ctx->cb_arg); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
119 |
ctx->cb_sent = NULL; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
120 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
121 |
// we don't care about EV_WRITE anymore |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
122 |
if (bufferevent_disable(ctx->bev_data, EV_WRITE)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
123 |
ERROR("bufferevent_disable"); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
124 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
125 |
// are we buffered or raw? |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
126 |
if (ctx->cb_data) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
127 |
// start receiving data into our buffer |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
128 |
if (bufferevent_enable(ctx->bev_data, EV_READ)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
129 |
ERROR("bufferevent_enable"); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
130 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
131 |
} else { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
132 |
assert(event_initialized(&ctx->ev_data)); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
133 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
134 |
// enable the raw read event |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
135 |
if (event_add(&ctx->ev_data, NULL)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
136 |
ERROR("event_add"); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
137 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
138 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
139 |
|
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
140 |
return; |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
141 |
|
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
142 |
error: |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
143 |
_render_remote_do_fail(ctx); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
144 |
} |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
145 |
|
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
146 |
static void _remote_read (struct bufferevent *bev, void *arg) { |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
147 |
struct render_remote *ctx = arg; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
148 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
149 |
_render_remote_do_data(ctx); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
150 |
} |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
151 |
|
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
152 |
static void _remote_error (struct bufferevent *bev, short what, void *arg) { |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
153 |
struct render_remote *ctx = arg; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
154 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
155 |
// OH NOES; WHAT DO WE DO!? |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
156 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
157 |
if (what & EVBUFFER_EOF) { |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
158 |
// great! |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
159 |
ctx->have_eof = 1; |
3
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
160 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
161 |
// flush any remaining data/call cb_send as needed |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
162 |
_render_remote_do_data(ctx); |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
163 |
|
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
164 |
return; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
165 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
166 |
} else if (what & EVBUFFER_ERROR) { |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
167 |
// crap. |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
168 |
PWARNING("EVBUFFER_ERROR"); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
169 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
170 |
} else if (what & EVBUFFER_TIMEOUT) { |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
171 |
// ah well |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
172 |
WARNING("render_remote: timeout"); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
173 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
174 |
} else { |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
175 |
FATAL("weird bufferevent error code: 0x%02X", what); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
176 |
} |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
177 |
|
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
178 |
// cb_fail + free |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
179 |
_render_remote_do_fail(ctx); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
180 |
} |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
181 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
182 |
/* |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
183 |
* Do the initial IO-agnostic work to initialize the rendering process |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
184 |
*/ |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
185 |
static struct render_remote *_render_remote_init (struct render *render, struct remote_pool *pool_info) { |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
186 |
struct render_remote *ctx; |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
187 |
struct remote_node *node_info; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
188 |
|
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
189 |
// get a node from the pool |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
190 |
if (!(node_info = remote_pool_get(pool_info))) |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
191 |
ERROR("remote_pool_get"); |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
192 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
193 |
// alloc the remote render ctx |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
194 |
if (!(ctx = calloc(1, sizeof(*ctx)))) |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
195 |
ERROR("calloc"); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
196 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
197 |
// copy the relevant stuff from the render_ctx |
11
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
198 |
ctx->render_cmd.mode = render->mode; |
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
199 |
ctx->render_cmd.img_w = htonl(render->img_w); |
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
200 |
ctx->render_cmd.img_h = htonl(render->img_h); |
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
201 |
ctx->render_cmd.x1 = render->x1; |
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
202 |
ctx->render_cmd.y1 = render->y1; |
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
203 |
ctx->render_cmd.x2 = render->x2; |
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
204 |
ctx->render_cmd.y2 = render->y2; |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
205 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
206 |
// create the socket |
26
6d615203d963
support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
25
diff
changeset
|
207 |
if ((ctx->sock = socket_connect_async(&node_info->endpoint, SOCK_STREAM)) == -1) |
6d615203d963
support for PF_LOCAL, it works, but needs some more testing/cleanup old code
Tero Marttila <terom@fixme.fi>
parents:
25
diff
changeset
|
208 |
goto error; |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
209 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
210 |
// return the raw ctx |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
211 |
return ctx; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
212 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
213 |
error: |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
214 |
_render_remote_free(ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
215 |
return NULL; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
216 |
} |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
217 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
218 |
/* |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
219 |
* Raw unbuffered I/O mode |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
220 |
*/ |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
221 |
struct render_remote *render_remote_rawio ( |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
222 |
struct render *render, |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
223 |
struct remote_pool *pool_info, |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
224 |
void (*cb_sent)(void *arg), |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
225 |
void (*cb_fail)(void *arg), |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
226 |
void (*cb_io_data)(evutil_socket_t, short, void*), |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
227 |
void *cb_arg |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
228 |
) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
229 |
struct render_remote *ctx; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
230 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
231 |
// short-circuit error handling |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
232 |
if (!(ctx = _render_remote_init(render, pool_info))) |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
233 |
return NULL; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
234 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
235 |
// store the provided callback functions |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
236 |
ctx->cb_sent = cb_sent; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
237 |
ctx->cb_fail = cb_fail; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
238 |
ctx->cb_arg = cb_arg; |
16
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
239 |
|
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
240 |
// set up the custom EV_READ callback |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
241 |
event_set(&ctx->ev_data, ctx->sock, EV_READ, cb_io_data, cb_arg); |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
242 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
243 |
// set up the write bufferevent |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
244 |
if ((ctx->bev_data = bufferevent_new(ctx->sock, NULL, &_remote_write, &_remote_error, ctx)) == NULL) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
245 |
ERROR("bufferevent_new"); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
246 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
247 |
// wait for it to connect |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
248 |
if (bufferevent_enable(ctx->bev_data, EV_WRITE)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
249 |
ERROR("bufferevent_enable"); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
250 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
251 |
// we are now alive |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
252 |
ctx->alive = 1; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
253 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
254 |
// success |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
255 |
return ctx; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
256 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
257 |
error: |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
258 |
_render_remote_free(ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
259 |
return NULL; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
260 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
261 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
262 |
/* |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
263 |
* Old buffered mode |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
264 |
*/ |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
265 |
struct render_remote *render_remote ( |
11
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
266 |
struct render *render, |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
267 |
struct remote_pool *pool_info, |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
268 |
void (*cb_sent)(void *arg), |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
269 |
void (*cb_data)(struct evbuffer *buf, void *arg), |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
270 |
void (*cb_done)(void *arg), |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
271 |
void (*cb_fail)(void *arg), |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
272 |
void *cb_arg |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
273 |
) { |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
274 |
struct render_remote *ctx; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
275 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
276 |
// short-circuit error handling |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
277 |
if (!(ctx = _render_remote_init(render, pool_info))) |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
278 |
return NULL; |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
279 |
|
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
280 |
// store the provided callback functions |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
281 |
ctx->cb_sent = cb_sent; |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
282 |
ctx->cb_data = cb_data; |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
283 |
ctx->cb_done = cb_done; |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
284 |
ctx->cb_fail = cb_fail; |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
285 |
ctx->cb_arg = cb_arg; |
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
286 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
287 |
// set up the read/write bufferevent |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
288 |
if ((ctx->bev_data = bufferevent_new(ctx->sock, &_remote_read, &_remote_write, &_remote_error, ctx)) == NULL) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
289 |
ERROR("bufferevent_new"); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
290 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
291 |
// wait for it to connect |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
292 |
if (bufferevent_enable(ctx->bev_data, EV_WRITE)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
293 |
ERROR("bufferevent_enable"); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
294 |
|
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
295 |
// we are now alive |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
296 |
ctx->alive = 1; |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
297 |
|
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
298 |
// success |
3
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
299 |
return ctx; |
4
49edbdf9ebe7
updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents:
3
diff
changeset
|
300 |
|
49edbdf9ebe7
updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents:
3
diff
changeset
|
301 |
error: |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
302 |
_render_remote_free(ctx); |
4
49edbdf9ebe7
updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents:
3
diff
changeset
|
303 |
return NULL; |
3
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
304 |
} |
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
305 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
306 |
void render_remote_set_recv (struct render_remote *ctx, size_t recv_threshold, size_t unread_buffer) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
307 |
assert(ctx->bev_data); |
3
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
308 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
309 |
bufferevent_setwatermark(ctx->bev_data, EV_READ, recv_threshold, recv_threshold + unread_buffer); |
6 | 310 |
} |
311 |
||
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
312 |
void render_remote_flush (struct render_remote *ctx) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
313 |
assert(ctx->bev_data); |
6 | 314 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
315 |
// call cb_data/cb_done as appropriate |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
316 |
_render_remote_do_data(ctx); |
2
69f8c0acaac7
working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
317 |
} |
3
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
318 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
319 |
int render_remote_reschedule (struct render_remote *ctx) { |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
320 |
assert(event_initialized(&ctx->ev_data)); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
321 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
322 |
// just reschedule it |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
323 |
if (event_add(&ctx->ev_data, NULL)) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
324 |
ERROR("event_add"); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
325 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
326 |
// ok |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
327 |
return 0; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
328 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
329 |
error: |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
330 |
return -1; |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
331 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
332 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
333 |
void render_remote_cancel (struct render_remote *ctx) { |
13
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
334 |
// we must be alive for this.. |
ee426f453cf5
* fix some (of the) stupid things in Makefile
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
335 |
assert(ctx->alive); |
11
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
336 |
|
16
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
337 |
ctx->alive = 0; |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
338 |
|
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
339 |
_render_remote_free(ctx); |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
340 |
} |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
341 |
|
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
342 |
void render_remote_done (struct render_remote *ctx) { |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
343 |
// we must be alive and non-buffered for this.. |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
344 |
assert(ctx->alive && event_initialized(&ctx->ev_data)); |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
345 |
|
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
346 |
ctx->alive = 0; |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
347 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
348 |
_render_remote_free(ctx); |
3
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
349 |
} |
675be0a45157
working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
350 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
351 |
void render_remote_free (struct render_remote *ctx) { |
16
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
352 |
// must be dead already |
50995bbe442a
render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
353 |
assert(!ctx->alive); |
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
354 |
|
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
355 |
_render_remote_free(ctx); |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
356 |
} |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
357 |