eventmachine 1.0.7-java → 1.0.8-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b93017d412c61150a4d664be575d7ce87907d5ed
4
- data.tar.gz: bd2358d58e8b21db9cdcd962651a674fb9eb607e
3
+ metadata.gz: 9407d5002e439f7bfc0290697021ba19adcb68fc
4
+ data.tar.gz: f7b6f83ff388375b52f5b0207d0a7bd03388ec94
5
5
  SHA512:
6
- metadata.gz: f1f260562d40ed19f4a483080840de34afc7df80d5c31c184e6c52ebf8000596f63d076590a94cc9164922e3d201b24639850f16eae109d2f6af80b72b6eccea
7
- data.tar.gz: b521218d7da6dadc59f531932f0e7e03983f326a3bda6ce8728b4b0a052f0a92117de3745a57f539d4fba782b23beebf55f2b30672ccff930ba5db4475f24996
6
+ metadata.gz: f6a7975235284f6c4ae1c9f602fbb8789d7fe46325b5a4741a99cb94d27733273172b80bb341a29a4a7a747586f821373e435c854eca1286b43de59c0b16ea18
7
+ data.tar.gz: a9728d5e9ea5b63cc8f20b88f0d72e73824b8a46ba764fd9d237386275961a6c879adc7bd3cb603b715c5ffd7494bc290d37209e0b369504c263602db1a3deff
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.8 (August 6, 2015)
4
+ * fix kqueue assertion failed, postpone ArmKqueueWriter until all events are processed [#51, #176, #372, #401, #619]
5
+ * fix Rubinius GC, crank the machine from Ruby space when running Rubinius [#201, #202, #617]
6
+ * test to show that LineText2 preserves whitespace and newlines [#32, #622]
7
+ * bump up compiler warnings and resolve them [#616]
8
+ * fix Windows x64 use uintptr_t instead of unsigned long for binding pointers [#612, #615]
9
+ * fix linetext2 unroll tail recursion to avoid stack level too deep [#609]
10
+ * fix for compilation with SSL on windows [#601]
11
+ * open file descriptors and sockets with O_CLOEXEC where possible [#298, #488, #591]
12
+ * fix SmtpClient: send second EHLO after STARTTLS. [#589]
13
+ * fix nul-terminated strings in C, use StringValueCStr instead of StringValuePtr
14
+
3
15
  ## 1.0.7 (February 10, 2015)
4
16
  * fix delay in kqueue/epoll reactor shutdown when timers exist [#587]
5
17
  * fix memory leak introduced in v1.0.5 [#586]
data/README.md CHANGED
@@ -32,7 +32,7 @@ EventMachine has been around since the early 2000s and is a mature and battle te
32
32
 
33
33
  ## What platforms are supported by EventMachine? ##
34
34
 
35
- EventMachine supports Ruby 1.8.7, 1.9.2, REE, JRuby and **works well on Windows** as well
35
+ EventMachine supports Ruby >= 1.8.7 and <= 2.2 REE, JRuby and **works well on Windows** as well
36
36
  as many operating systems from the Unix family (Linux, Mac OS X, BSD flavors).
37
37
 
38
38
 
@@ -22,16 +22,16 @@ See the file COPYING for complete licensing information.
22
22
  #define DEV_URANDOM "/dev/urandom"
23
23
 
24
24
 
25
- map<unsigned long, Bindable_t*> Bindable_t::BindingBag;
25
+ map<uintptr_t, Bindable_t*> Bindable_t::BindingBag;
26
26
 
27
27
 
28
28
  /********************************
29
29
  STATIC Bindable_t::CreateBinding
30
30
  ********************************/
31
31
 
32
- unsigned long Bindable_t::CreateBinding()
32
+ uintptr_t Bindable_t::CreateBinding()
33
33
  {
34
- static unsigned long num = 0;
34
+ static uintptr_t num = 0;
35
35
  while(BindingBag[++num]) {}
36
36
  return num;
37
37
  }
@@ -90,13 +90,13 @@ string Bindable_t::CreateBinding()
90
90
  STATIC: Bindable_t::GetObject
91
91
  *****************************/
92
92
 
93
- Bindable_t *Bindable_t::GetObject (const unsigned long binding)
93
+ Bindable_t *Bindable_t::GetObject (const uintptr_t binding)
94
94
  {
95
- map<unsigned long, Bindable_t*>::const_iterator i = BindingBag.find (binding);
96
- if (i != BindingBag.end())
97
- return i->second;
98
- else
99
- return NULL;
95
+ map<uintptr_t, Bindable_t*>::const_iterator i = BindingBag.find (binding);
96
+ if (i != BindingBag.end())
97
+ return i->second;
98
+ else
99
+ return NULL;
100
100
  }
101
101
 
102
102
 
@@ -24,18 +24,18 @@ See the file COPYING for complete licensing information.
24
24
  class Bindable_t
25
25
  {
26
26
  public:
27
- static unsigned long CreateBinding();
28
- static Bindable_t *GetObject (const unsigned long);
29
- static map<unsigned long, Bindable_t*> BindingBag;
27
+ static uintptr_t CreateBinding();
28
+ static Bindable_t *GetObject (const uintptr_t);
29
+ static map<uintptr_t, Bindable_t*> BindingBag;
30
30
 
31
31
  public:
32
32
  Bindable_t();
33
33
  virtual ~Bindable_t();
34
34
 
35
- const unsigned long GetBinding() {return Binding;}
35
+ const uintptr_t GetBinding() {return Binding;}
36
36
 
37
37
  private:
38
- unsigned long Binding;
38
+ uintptr_t Binding;
39
39
  };
40
40
 
41
41
 
@@ -29,8 +29,7 @@ See the file COPYING for complete licensing information.
29
29
  #endif
30
30
 
31
31
  static EventMachine_t *EventMachine;
32
- static int bUseEpoll = 0;
33
- static int bUseKqueue = 0;
32
+ static Poller_t Poller = Poller_Default;
34
33
 
35
34
  extern "C" void ensure_eventmachine (const char *caller = "unknown caller")
36
35
  {
@@ -58,11 +57,8 @@ extern "C" void evma_initialize_library (EMCallback cb)
58
57
  #else
59
58
  throw std::runtime_error ("eventmachine already initialized: evma_initialize_library");
60
59
  #endif
61
- EventMachine = new EventMachine_t (cb);
62
- if (bUseEpoll)
63
- EventMachine->_UseEpoll();
64
- if (bUseKqueue)
65
- EventMachine->_UseKqueue();
60
+
61
+ EventMachine = new EventMachine_t (cb, Poller);
66
62
  }
67
63
 
68
64
 
@@ -78,6 +74,17 @@ extern "C" void evma_release_library()
78
74
  }
79
75
 
80
76
 
77
+ /*********************
78
+ evma_run_machine_once
79
+ *********************/
80
+
81
+ extern "C" bool evma_run_machine_once()
82
+ {
83
+ ensure_eventmachine("evma_run_machine_once");
84
+ return EventMachine->RunOnce();
85
+ }
86
+
87
+
81
88
  /****************
82
89
  evma_run_machine
83
90
  ****************/
@@ -93,7 +100,7 @@ extern "C" void evma_run_machine()
93
100
  evma_install_oneshot_timer
94
101
  **************************/
95
102
 
96
- extern "C" const unsigned long evma_install_oneshot_timer (int seconds)
103
+ extern "C" const uintptr_t evma_install_oneshot_timer (int seconds)
97
104
  {
98
105
  ensure_eventmachine("evma_install_oneshot_timer");
99
106
  return EventMachine->InstallOneshotTimer (seconds);
@@ -104,7 +111,7 @@ extern "C" const unsigned long evma_install_oneshot_timer (int seconds)
104
111
  evma_connect_to_server
105
112
  **********************/
106
113
 
107
- extern "C" const unsigned long evma_connect_to_server (const char *bind_addr, int bind_port, const char *server, int port)
114
+ extern "C" const uintptr_t evma_connect_to_server (const char *bind_addr, int bind_port, const char *server, int port)
108
115
  {
109
116
  ensure_eventmachine("evma_connect_to_server");
110
117
  return EventMachine->ConnectToServer (bind_addr, bind_port, server, port);
@@ -114,7 +121,7 @@ extern "C" const unsigned long evma_connect_to_server (const char *bind_addr, in
114
121
  evma_connect_to_unix_server
115
122
  ***************************/
116
123
 
117
- extern "C" const unsigned long evma_connect_to_unix_server (const char *server)
124
+ extern "C" const uintptr_t evma_connect_to_unix_server (const char *server)
118
125
  {
119
126
  ensure_eventmachine("evma_connect_to_unix_server");
120
127
  return EventMachine->ConnectToUnixServer (server);
@@ -124,7 +131,7 @@ extern "C" const unsigned long evma_connect_to_unix_server (const char *server)
124
131
  evma_attach_fd
125
132
  **************/
126
133
 
127
- extern "C" const unsigned long evma_attach_fd (int file_descriptor, int watch_mode)
134
+ extern "C" const uintptr_t evma_attach_fd (int file_descriptor, int watch_mode)
128
135
  {
129
136
  ensure_eventmachine("evma_attach_fd");
130
137
  return EventMachine->AttachFD (file_descriptor, watch_mode ? true : false);
@@ -134,7 +141,7 @@ extern "C" const unsigned long evma_attach_fd (int file_descriptor, int watch_mo
134
141
  evma_detach_fd
135
142
  **************/
136
143
 
137
- extern "C" int evma_detach_fd (const unsigned long binding)
144
+ extern "C" int evma_detach_fd (const uintptr_t binding)
138
145
  {
139
146
  ensure_eventmachine("evma_detach_fd");
140
147
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -153,7 +160,7 @@ extern "C" int evma_detach_fd (const unsigned long binding)
153
160
  evma_get_file_descriptor
154
161
  ************************/
155
162
 
156
- extern "C" int evma_get_file_descriptor (const unsigned long binding)
163
+ extern "C" int evma_get_file_descriptor (const uintptr_t binding)
157
164
  {
158
165
  ensure_eventmachine("evma_get_file_descriptor");
159
166
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -172,7 +179,7 @@ extern "C" int evma_get_file_descriptor (const unsigned long binding)
172
179
  evma_is_notify_readable
173
180
  ***********************/
174
181
 
175
- extern "C" int evma_is_notify_readable (const unsigned long binding)
182
+ extern "C" int evma_is_notify_readable (const uintptr_t binding)
176
183
  {
177
184
  ConnectionDescriptor *cd = dynamic_cast <ConnectionDescriptor*> (Bindable_t::GetObject (binding));
178
185
  if (cd)
@@ -184,7 +191,7 @@ extern "C" int evma_is_notify_readable (const unsigned long binding)
184
191
  evma_set_notify_readable
185
192
  ************************/
186
193
 
187
- extern "C" void evma_set_notify_readable (const unsigned long binding, int mode)
194
+ extern "C" void evma_set_notify_readable (const uintptr_t binding, int mode)
188
195
  {
189
196
  ConnectionDescriptor *cd = dynamic_cast <ConnectionDescriptor*> (Bindable_t::GetObject (binding));
190
197
  if (cd)
@@ -195,7 +202,7 @@ extern "C" void evma_set_notify_readable (const unsigned long binding, int mode)
195
202
  evma_is_notify_writable
196
203
  ***********************/
197
204
 
198
- extern "C" int evma_is_notify_writable (const unsigned long binding)
205
+ extern "C" int evma_is_notify_writable (const uintptr_t binding)
199
206
  {
200
207
  ConnectionDescriptor *cd = dynamic_cast <ConnectionDescriptor*> (Bindable_t::GetObject (binding));
201
208
  if (cd)
@@ -207,7 +214,7 @@ extern "C" int evma_is_notify_writable (const unsigned long binding)
207
214
  evma_set_notify_writable
208
215
  ************************/
209
216
 
210
- extern "C" void evma_set_notify_writable (const unsigned long binding, int mode)
217
+ extern "C" void evma_set_notify_writable (const uintptr_t binding, int mode)
211
218
  {
212
219
  ConnectionDescriptor *cd = dynamic_cast <ConnectionDescriptor*> (Bindable_t::GetObject (binding));
213
220
  if (cd)
@@ -218,7 +225,7 @@ extern "C" void evma_set_notify_writable (const unsigned long binding, int mode)
218
225
  evma_pause
219
226
  **********/
220
227
 
221
- extern "C" int evma_pause (const unsigned long binding)
228
+ extern "C" int evma_pause (const uintptr_t binding)
222
229
  {
223
230
  EventableDescriptor *cd = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
224
231
  if (cd)
@@ -231,7 +238,7 @@ extern "C" int evma_pause (const unsigned long binding)
231
238
  evma_resume
232
239
  ***********/
233
240
 
234
- extern "C" int evma_resume (const unsigned long binding)
241
+ extern "C" int evma_resume (const uintptr_t binding)
235
242
  {
236
243
  EventableDescriptor *cd = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
237
244
  if (cd)
@@ -244,7 +251,7 @@ extern "C" int evma_resume (const unsigned long binding)
244
251
  evma_is_paused
245
252
  **************/
246
253
 
247
- extern "C" int evma_is_paused (const unsigned long binding)
254
+ extern "C" int evma_is_paused (const uintptr_t binding)
248
255
  {
249
256
  EventableDescriptor *cd = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
250
257
  if (cd)
@@ -267,7 +274,7 @@ extern "C" int evma_num_close_scheduled ()
267
274
  evma_create_tcp_server
268
275
  **********************/
269
276
 
270
- extern "C" const unsigned long evma_create_tcp_server (const char *address, int port)
277
+ extern "C" const uintptr_t evma_create_tcp_server (const char *address, int port)
271
278
  {
272
279
  ensure_eventmachine("evma_create_tcp_server");
273
280
  return EventMachine->CreateTcpServer (address, port);
@@ -277,7 +284,7 @@ extern "C" const unsigned long evma_create_tcp_server (const char *address, int
277
284
  evma_create_unix_domain_server
278
285
  ******************************/
279
286
 
280
- extern "C" const unsigned long evma_create_unix_domain_server (const char *filename)
287
+ extern "C" const uintptr_t evma_create_unix_domain_server (const char *filename)
281
288
  {
282
289
  ensure_eventmachine("evma_create_unix_domain_server");
283
290
  return EventMachine->CreateUnixDomainServer (filename);
@@ -287,7 +294,7 @@ extern "C" const unsigned long evma_create_unix_domain_server (const char *filen
287
294
  evma_attach_sd
288
295
  ************************/
289
296
 
290
- extern "C" const unsigned long evma_attach_sd (int sd)
297
+ extern "C" const uintptr_t evma_attach_sd (int sd)
291
298
  {
292
299
  ensure_eventmachine("evma_attach_sd");
293
300
  return EventMachine->AttachSD (sd);
@@ -297,7 +304,7 @@ extern "C" const unsigned long evma_attach_sd (int sd)
297
304
  evma_open_datagram_socket
298
305
  *************************/
299
306
 
300
- extern "C" const unsigned long evma_open_datagram_socket (const char *address, int port)
307
+ extern "C" const uintptr_t evma_open_datagram_socket (const char *address, int port)
301
308
  {
302
309
  ensure_eventmachine("evma_open_datagram_socket");
303
310
  return EventMachine->OpenDatagramSocket (address, port);
@@ -307,7 +314,7 @@ extern "C" const unsigned long evma_open_datagram_socket (const char *address, i
307
314
  evma_open_keyboard
308
315
  ******************/
309
316
 
310
- extern "C" const unsigned long evma_open_keyboard()
317
+ extern "C" const uintptr_t evma_open_keyboard()
311
318
  {
312
319
  ensure_eventmachine("evma_open_keyboard");
313
320
  return EventMachine->OpenKeyboard();
@@ -317,7 +324,7 @@ extern "C" const unsigned long evma_open_keyboard()
317
324
  evma_watch_filename
318
325
  *******************/
319
326
 
320
- extern "C" const unsigned long evma_watch_filename (const char *fname)
327
+ extern "C" const uintptr_t evma_watch_filename (const char *fname)
321
328
  {
322
329
  ensure_eventmachine("evma_watch_filename");
323
330
  return EventMachine->WatchFile(fname);
@@ -327,7 +334,7 @@ extern "C" const unsigned long evma_watch_filename (const char *fname)
327
334
  evma_unwatch_filename
328
335
  *********************/
329
336
 
330
- extern "C" void evma_unwatch_filename (const unsigned long sig)
337
+ extern "C" void evma_unwatch_filename (const uintptr_t sig)
331
338
  {
332
339
  ensure_eventmachine("evma_unwatch_file");
333
340
  EventMachine->UnwatchFile(sig);
@@ -337,7 +344,7 @@ extern "C" void evma_unwatch_filename (const unsigned long sig)
337
344
  evma_watch_pid
338
345
  **************/
339
346
 
340
- extern "C" const unsigned long evma_watch_pid (int pid)
347
+ extern "C" const uintptr_t evma_watch_pid (int pid)
341
348
  {
342
349
  ensure_eventmachine("evma_watch_pid");
343
350
  return EventMachine->WatchPid(pid);
@@ -347,7 +354,7 @@ extern "C" const unsigned long evma_watch_pid (int pid)
347
354
  evma_unwatch_pid
348
355
  ****************/
349
356
 
350
- extern "C" void evma_unwatch_pid (const unsigned long sig)
357
+ extern "C" void evma_unwatch_pid (const uintptr_t sig)
351
358
  {
352
359
  ensure_eventmachine("evma_unwatch_pid");
353
360
  EventMachine->UnwatchPid(sig);
@@ -357,7 +364,7 @@ extern "C" void evma_unwatch_pid (const unsigned long sig)
357
364
  evma_send_data_to_connection
358
365
  ****************************/
359
366
 
360
- extern "C" int evma_send_data_to_connection (const unsigned long binding, const char *data, int data_length)
367
+ extern "C" int evma_send_data_to_connection (const uintptr_t binding, const char *data, int data_length)
361
368
  {
362
369
  ensure_eventmachine("evma_send_data_to_connection");
363
370
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -370,7 +377,7 @@ extern "C" int evma_send_data_to_connection (const unsigned long binding, const
370
377
  evma_send_datagram
371
378
  ******************/
372
379
 
373
- extern "C" int evma_send_datagram (const unsigned long binding, const char *data, int data_length, const char *address, int port)
380
+ extern "C" int evma_send_datagram (const uintptr_t binding, const char *data, int data_length, const char *address, int port)
374
381
  {
375
382
  ensure_eventmachine("evma_send_datagram");
376
383
  DatagramDescriptor *dd = dynamic_cast <DatagramDescriptor*> (Bindable_t::GetObject (binding));
@@ -384,7 +391,7 @@ extern "C" int evma_send_datagram (const unsigned long binding, const char *data
384
391
  evma_close_connection
385
392
  *********************/
386
393
 
387
- extern "C" void evma_close_connection (const unsigned long binding, int after_writing)
394
+ extern "C" void evma_close_connection (const uintptr_t binding, int after_writing)
388
395
  {
389
396
  ensure_eventmachine("evma_close_connection");
390
397
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -396,7 +403,7 @@ extern "C" void evma_close_connection (const unsigned long binding, int after_wr
396
403
  evma_report_connection_error_status
397
404
  ***********************************/
398
405
 
399
- extern "C" int evma_report_connection_error_status (const unsigned long binding)
406
+ extern "C" int evma_report_connection_error_status (const uintptr_t binding)
400
407
  {
401
408
  ensure_eventmachine("evma_report_connection_error_status");
402
409
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -409,7 +416,7 @@ extern "C" int evma_report_connection_error_status (const unsigned long binding)
409
416
  evma_stop_tcp_server
410
417
  ********************/
411
418
 
412
- extern "C" void evma_stop_tcp_server (const unsigned long binding)
419
+ extern "C" void evma_stop_tcp_server (const uintptr_t binding)
413
420
  {
414
421
  ensure_eventmachine("evma_stop_tcp_server");
415
422
  AcceptorDescriptor::StopAcceptor (binding);
@@ -431,7 +438,7 @@ extern "C" void evma_stop_machine()
431
438
  evma_start_tls
432
439
  **************/
433
440
 
434
- extern "C" void evma_start_tls (const unsigned long binding)
441
+ extern "C" void evma_start_tls (const uintptr_t binding)
435
442
  {
436
443
  ensure_eventmachine("evma_start_tls");
437
444
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -443,7 +450,7 @@ extern "C" void evma_start_tls (const unsigned long binding)
443
450
  evma_set_tls_parms
444
451
  ******************/
445
452
 
446
- extern "C" void evma_set_tls_parms (const unsigned long binding, const char *privatekey_filename, const char *certchain_filename, int verify_peer)
453
+ extern "C" void evma_set_tls_parms (const uintptr_t binding, const char *privatekey_filename, const char *certchain_filename, int verify_peer)
447
454
  {
448
455
  ensure_eventmachine("evma_set_tls_parms");
449
456
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -456,7 +463,7 @@ evma_get_peer_cert
456
463
  ******************/
457
464
 
458
465
  #ifdef WITH_SSL
459
- extern "C" X509 *evma_get_peer_cert (const unsigned long binding)
466
+ extern "C" X509 *evma_get_peer_cert (const uintptr_t binding)
460
467
  {
461
468
  ensure_eventmachine("evma_get_peer_cert");
462
469
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -471,7 +478,7 @@ evma_accept_ssl_peer
471
478
  ********************/
472
479
 
473
480
  #ifdef WITH_SSL
474
- extern "C" void evma_accept_ssl_peer (const unsigned long binding)
481
+ extern "C" void evma_accept_ssl_peer (const uintptr_t binding)
475
482
  {
476
483
  ensure_eventmachine("evma_accept_ssl_peer");
477
484
  ConnectionDescriptor *cd = dynamic_cast <ConnectionDescriptor*> (Bindable_t::GetObject (binding));
@@ -484,7 +491,7 @@ extern "C" void evma_accept_ssl_peer (const unsigned long binding)
484
491
  evma_get_peername
485
492
  *****************/
486
493
 
487
- extern "C" int evma_get_peername (const unsigned long binding, struct sockaddr *sa, socklen_t *len)
494
+ extern "C" int evma_get_peername (const uintptr_t binding, struct sockaddr *sa, socklen_t *len)
488
495
  {
489
496
  ensure_eventmachine("evma_get_peername");
490
497
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -499,7 +506,7 @@ extern "C" int evma_get_peername (const unsigned long binding, struct sockaddr *
499
506
  evma_get_sockname
500
507
  *****************/
501
508
 
502
- extern "C" int evma_get_sockname (const unsigned long binding, struct sockaddr *sa, socklen_t *len)
509
+ extern "C" int evma_get_sockname (const uintptr_t binding, struct sockaddr *sa, socklen_t *len)
503
510
  {
504
511
  ensure_eventmachine("evma_get_sockname");
505
512
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -514,7 +521,7 @@ extern "C" int evma_get_sockname (const unsigned long binding, struct sockaddr *
514
521
  evma_get_subprocess_pid
515
522
  ***********************/
516
523
 
517
- extern "C" int evma_get_subprocess_pid (const unsigned long binding, pid_t *pid)
524
+ extern "C" int evma_get_subprocess_pid (const uintptr_t binding, pid_t *pid)
518
525
  {
519
526
  ensure_eventmachine("evma_get_subprocess_pid");
520
527
  #ifdef OS_UNIX
@@ -537,7 +544,7 @@ extern "C" int evma_get_subprocess_pid (const unsigned long binding, pid_t *pid)
537
544
  evma_get_subprocess_status
538
545
  **************************/
539
546
 
540
- extern "C" int evma_get_subprocess_status (const unsigned long binding, int *status)
547
+ extern "C" int evma_get_subprocess_status (const uintptr_t binding UNUSED, int *status)
541
548
  {
542
549
  ensure_eventmachine("evma_get_subprocess_status");
543
550
  if (status) {
@@ -574,7 +581,7 @@ extern "C" void evma_signal_loopbreak()
574
581
  evma_get_comm_inactivity_timeout
575
582
  ********************************/
576
583
 
577
- extern "C" float evma_get_comm_inactivity_timeout (const unsigned long binding)
584
+ extern "C" float evma_get_comm_inactivity_timeout (const uintptr_t binding)
578
585
  {
579
586
  ensure_eventmachine("evma_get_comm_inactivity_timeout");
580
587
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -589,7 +596,7 @@ extern "C" float evma_get_comm_inactivity_timeout (const unsigned long binding)
589
596
  evma_set_comm_inactivity_timeout
590
597
  ********************************/
591
598
 
592
- extern "C" int evma_set_comm_inactivity_timeout (const unsigned long binding, float value)
599
+ extern "C" int evma_set_comm_inactivity_timeout (const uintptr_t binding, float value)
593
600
  {
594
601
  ensure_eventmachine("evma_set_comm_inactivity_timeout");
595
602
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -605,7 +612,7 @@ extern "C" int evma_set_comm_inactivity_timeout (const unsigned long binding, fl
605
612
  evma_get_pending_connect_timeout
606
613
  ********************************/
607
614
 
608
- extern "C" float evma_get_pending_connect_timeout (const unsigned long binding)
615
+ extern "C" float evma_get_pending_connect_timeout (const uintptr_t binding)
609
616
  {
610
617
  ensure_eventmachine("evma_get_pending_connect_timeout");
611
618
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -621,7 +628,7 @@ extern "C" float evma_get_pending_connect_timeout (const unsigned long binding)
621
628
  evma_set_pending_connect_timeout
622
629
  ********************************/
623
630
 
624
- extern "C" int evma_set_pending_connect_timeout (const unsigned long binding, float value)
631
+ extern "C" int evma_set_pending_connect_timeout (const uintptr_t binding, float value)
625
632
  {
626
633
  ensure_eventmachine("evma_set_pending_connect_timeout");
627
634
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -700,7 +707,7 @@ extern "C" void evma_setuid_string (const char *username)
700
707
  evma_popen
701
708
  **********/
702
709
 
703
- extern "C" const unsigned long evma_popen (char * const*cmd_strings)
710
+ extern "C" const uintptr_t evma_popen (char * const*cmd_strings)
704
711
  {
705
712
  ensure_eventmachine("evma_popen");
706
713
  return EventMachine->Socketpair (cmd_strings);
@@ -711,7 +718,7 @@ extern "C" const unsigned long evma_popen (char * const*cmd_strings)
711
718
  evma_get_outbound_data_size
712
719
  ***************************/
713
720
 
714
- extern "C" int evma_get_outbound_data_size (const unsigned long binding)
721
+ extern "C" int evma_get_outbound_data_size (const uintptr_t binding)
715
722
  {
716
723
  ensure_eventmachine("evma_get_outbound_data_size");
717
724
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (binding));
@@ -725,7 +732,10 @@ evma_set_epoll
725
732
 
726
733
  extern "C" void evma_set_epoll (int use)
727
734
  {
728
- bUseEpoll = !!use;
735
+ if (use)
736
+ Poller = Poller_Epoll;
737
+ else
738
+ Poller = Poller_Default;
729
739
  }
730
740
 
731
741
  /***************
@@ -734,7 +744,10 @@ evma_set_kqueue
734
744
 
735
745
  extern "C" void evma_set_kqueue (int use)
736
746
  {
737
- bUseKqueue = !!use;
747
+ if (use)
748
+ Poller = Poller_Kqueue;
749
+ else
750
+ Poller = Poller_Default;
738
751
  }
739
752
 
740
753
 
@@ -752,7 +765,7 @@ extern "C" int evma_set_rlimit_nofile (int nofiles)
752
765
  evma_send_file_data_to_connection
753
766
  *********************************/
754
767
 
755
- extern "C" int evma_send_file_data_to_connection (const unsigned long binding, const char *filename)
768
+ extern "C" int evma_send_file_data_to_connection (const uintptr_t binding, const char *filename)
756
769
  {
757
770
  /* This is a sugaring over send_data_to_connection that reads a file into a
758
771
  * locally-allocated buffer, and sends the file data to the remote peer.
@@ -819,7 +832,7 @@ extern "C" int evma_send_file_data_to_connection (const unsigned long binding, c
819
832
  evma_start_proxy
820
833
  *****************/
821
834
 
822
- extern "C" void evma_start_proxy (const unsigned long from, const unsigned long to, const unsigned long bufsize, const unsigned long length)
835
+ extern "C" void evma_start_proxy (const uintptr_t from, const uintptr_t to, const unsigned long bufsize, const unsigned long length)
823
836
  {
824
837
  ensure_eventmachine("evma_start_proxy");
825
838
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (from));
@@ -832,7 +845,7 @@ extern "C" void evma_start_proxy (const unsigned long from, const unsigned long
832
845
  evma_stop_proxy
833
846
  ****************/
834
847
 
835
- extern "C" void evma_stop_proxy (const unsigned long from)
848
+ extern "C" void evma_stop_proxy (const uintptr_t from)
836
849
  {
837
850
  ensure_eventmachine("evma_stop_proxy");
838
851
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (from));
@@ -844,7 +857,7 @@ extern "C" void evma_stop_proxy (const unsigned long from)
844
857
  evma_proxied_bytes
845
858
  *******************/
846
859
 
847
- extern "C" unsigned long evma_proxied_bytes (const unsigned long from)
860
+ extern "C" unsigned long evma_proxied_bytes (const uintptr_t from)
848
861
  {
849
862
  ensure_eventmachine("evma_proxied_bytes");
850
863
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (from));
@@ -859,7 +872,7 @@ extern "C" unsigned long evma_proxied_bytes (const unsigned long from)
859
872
  evma_get_last_activity_time
860
873
  ****************************/
861
874
 
862
- extern "C" uint64_t evma_get_last_activity_time(const unsigned long from)
875
+ extern "C" uint64_t evma_get_last_activity_time(const uintptr_t from)
863
876
  {
864
877
  ensure_eventmachine("evma_get_last_activity_time");
865
878
  EventableDescriptor *ed = dynamic_cast <EventableDescriptor*> (Bindable_t::GetObject (from));