~ubuntu-branches/ubuntu/maverick/zeromq/maverick

« back to all changes in this revision

Viewing changes to src/kqueue.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Adrian von Bidder
  • Date: 2010-03-17 10:43:40 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100317104340-un1ne0oqe16w8eaq
Tags: 2.0.6beta.dfsg-1
* New upstream version.
  - Source doesn't include non-C/C++ language bindings anymore.
  - New versioning: 2.0.6 is official upstream version which is a beta.
* Repacked orig tar: removed non-free RFC documents (closes: #567513)
* Improved/corrected description and copyright file, added bzip2 build
  dependency.  Thanks to feedback from zeromq mailing list.
* Disable OpenPGM on non-x86 architectures (closes: #567848)

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 
20
20
#include "platform.hpp"
21
21
 
22
 
#if defined ZMQ_HAVE_FREEBSD || defined ZMQ_HAVE_OPENBSD || defined ZMQ_HAVE_OSX
 
22
#if defined ZMQ_HAVE_FREEBSD || defined ZMQ_HAVE_OPENBSD ||\
 
23
    defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_NETBSD
23
24
 
24
25
#include <sys/time.h>
25
26
#include <sys/types.h>
34
35
#include "config.hpp"
35
36
#include "i_poll_events.hpp"
36
37
 
 
38
//  NetBSD defines (struct kevent).udata as intptr_t, everyone else
 
39
//  as void *.
 
40
#if defined ZMQ_HAVE_NETBSD
 
41
#define kevent_udata_t intptr_t
 
42
#else
 
43
#define kevent_udata_t void *
 
44
#endif
 
45
 
37
46
zmq::kqueue_t::kqueue_t () :
38
47
    stopping (false)
39
48
{
56
65
{
57
66
    struct kevent ev;
58
67
 
59
 
    EV_SET (&ev, fd_, filter_, EV_ADD, 0, 0, udata_);
 
68
    EV_SET (&ev, fd_, filter_, EV_ADD, 0, 0, (kevent_udata_t)udata_);
60
69
    int rc = kevent (kqueue_fd, &ev, 1, NULL, 0, NULL);
61
70
    errno_assert (rc != -1);
62
71
}
65
74
{
66
75
    struct kevent ev;
67
76
 
68
 
    EV_SET (&ev, fd_, filter_, EV_DELETE, 0, 0, NULL);
 
77
    EV_SET (&ev, fd_, filter_, EV_DELETE, 0, 0, (kevent_udata_t)NULL);
69
78
    int rc = kevent (kqueue_fd, &ev, 1, NULL, 0, NULL);
70
79
    errno_assert (rc != -1);
71
80
}
212
221
    ((kqueue_t*) arg_)->loop ();
213
222
}
214
223
 
 
224
//  Don't pollute namespace with defines local to this file
 
225
#undef kevent_udata_t
215
226
#endif