You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2017/07/23 18:39:10 UTC
[03/14] arrow git commit: [C++] Remove Plasma source tree for 0.5.0
release pending IP Clearance
http://git-wip-us.apache.org/repos/asf/arrow/blob/62ef2cd8/cpp/src/plasma/thirdparty/ae/ae_evport.c
----------------------------------------------------------------------
diff --git a/cpp/src/plasma/thirdparty/ae/ae_evport.c b/cpp/src/plasma/thirdparty/ae/ae_evport.c
deleted file mode 100644
index 5c317be..0000000
--- a/cpp/src/plasma/thirdparty/ae/ae_evport.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/* ae.c module for illumos event ports.
- *
- * Copyright (c) 2012, Joyent, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Redis nor the names of its contributors may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include <assert.h>
-#include <errno.h>
-#include <port.h>
-#include <poll.h>
-
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include <stdio.h>
-
-static int evport_debug = 0;
-
-/*
- * This file implements the ae API using event ports, present on Solaris-based
- * systems since Solaris 10. Using the event port interface, we associate file
- * descriptors with the port. Each association also includes the set of poll(2)
- * events that the consumer is interested in (e.g., POLLIN and POLLOUT).
- *
- * There's one tricky piece to this implementation: when we return events via
- * aeApiPoll, the corresponding file descriptors become dissociated from the
- * port. This is necessary because poll events are level-triggered, so if the
- * fd didn't become dissociated, it would immediately fire another event since
- * the underlying state hasn't changed yet. We must re-associate the file
- * descriptor, but only after we know that our caller has actually read from it.
- * The ae API does not tell us exactly when that happens, but we do know that
- * it must happen by the time aeApiPoll is called again. Our solution is to
- * keep track of the last fds returned by aeApiPoll and re-associate them next
- * time aeApiPoll is invoked.
- *
- * To summarize, in this module, each fd association is EITHER (a) represented
- * only via the in-kernel association OR (b) represented by pending_fds and
- * pending_masks. (b) is only true for the last fds we returned from aeApiPoll,
- * and only until we enter aeApiPoll again (at which point we restore the
- * in-kernel association).
- */
-#define MAX_EVENT_BATCHSZ 512
-
-typedef struct aeApiState {
- int portfd; /* event port */
- int npending; /* # of pending fds */
- int pending_fds[MAX_EVENT_BATCHSZ]; /* pending fds */
- int pending_masks[MAX_EVENT_BATCHSZ]; /* pending fds' masks */
-} aeApiState;
-
-static int aeApiCreate(aeEventLoop *eventLoop) {
- int i;
- aeApiState *state = zmalloc(sizeof(aeApiState));
- if (!state) return -1;
-
- state->portfd = port_create();
- if (state->portfd == -1) {
- zfree(state);
- return -1;
- }
-
- state->npending = 0;
-
- for (i = 0; i < MAX_EVENT_BATCHSZ; i++) {
- state->pending_fds[i] = -1;
- state->pending_masks[i] = AE_NONE;
- }
-
- eventLoop->apidata = state;
- return 0;
-}
-
-static int aeApiResize(aeEventLoop *eventLoop, int setsize) {
- /* Nothing to resize here. */
- return 0;
-}
-
-static void aeApiFree(aeEventLoop *eventLoop) {
- aeApiState *state = eventLoop->apidata;
-
- close(state->portfd);
- zfree(state);
-}
-
-static int aeApiLookupPending(aeApiState *state, int fd) {
- int i;
-
- for (i = 0; i < state->npending; i++) {
- if (state->pending_fds[i] == fd)
- return (i);
- }
-
- return (-1);
-}
-
-/*
- * Helper function to invoke port_associate for the given fd and mask.
- */
-static int aeApiAssociate(const char *where, int portfd, int fd, int mask) {
- int events = 0;
- int rv, err;
-
- if (mask & AE_READABLE)
- events |= POLLIN;
- if (mask & AE_WRITABLE)
- events |= POLLOUT;
-
- if (evport_debug)
- fprintf(stderr, "%s: port_associate(%d, 0x%x) = ", where, fd, events);
-
- rv = port_associate(portfd, PORT_SOURCE_FD, fd, events,
- (void *)(uintptr_t)mask);
- err = errno;
-
- if (evport_debug)
- fprintf(stderr, "%d (%s)\n", rv, rv == 0 ? "no error" : strerror(err));
-
- if (rv == -1) {
- fprintf(stderr, "%s: port_associate: %s\n", where, strerror(err));
-
- if (err == EAGAIN)
- fprintf(stderr, "aeApiAssociate: event port limit exceeded.");
- }
-
- return rv;
-}
-
-static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) {
- aeApiState *state = eventLoop->apidata;
- int fullmask, pfd;
-
- if (evport_debug)
- fprintf(stderr, "aeApiAddEvent: fd %d mask 0x%x\n", fd, mask);
-
- /*
- * Since port_associate's "events" argument replaces any existing events, we
- * must be sure to include whatever events are already associated when
- * we call port_associate() again.
- */
- fullmask = mask | eventLoop->events[fd].mask;
- pfd = aeApiLookupPending(state, fd);
-
- if (pfd != -1) {
- /*
- * This fd was recently returned from aeApiPoll. It should be safe to
- * assume that the consumer has processed that poll event, but we play
- * it safer by simply updating pending_mask. The fd will be
- * re-associated as usual when aeApiPoll is called again.
- */
- if (evport_debug)
- fprintf(stderr, "aeApiAddEvent: adding to pending fd %d\n", fd);
- state->pending_masks[pfd] |= fullmask;
- return 0;
- }
-
- return (aeApiAssociate("aeApiAddEvent", state->portfd, fd, fullmask));
-}
-
-static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) {
- aeApiState *state = eventLoop->apidata;
- int fullmask, pfd;
-
- if (evport_debug)
- fprintf(stderr, "del fd %d mask 0x%x\n", fd, mask);
-
- pfd = aeApiLookupPending(state, fd);
-
- if (pfd != -1) {
- if (evport_debug)
- fprintf(stderr, "deleting event from pending fd %d\n", fd);
-
- /*
- * This fd was just returned from aeApiPoll, so it's not currently
- * associated with the port. All we need to do is update
- * pending_mask appropriately.
- */
- state->pending_masks[pfd] &= ~mask;
-
- if (state->pending_masks[pfd] == AE_NONE)
- state->pending_fds[pfd] = -1;
-
- return;
- }
-
- /*
- * The fd is currently associated with the port. Like with the add case
- * above, we must look at the full mask for the file descriptor before
- * updating that association. We don't have a good way of knowing what the
- * events are without looking into the eventLoop state directly. We rely on
- * the fact that our caller has already updated the mask in the eventLoop.
- */
-
- fullmask = eventLoop->events[fd].mask;
- if (fullmask == AE_NONE) {
- /*
- * We're removing *all* events, so use port_dissociate to remove the
- * association completely. Failure here indicates a bug.
- */
- if (evport_debug)
- fprintf(stderr, "aeApiDelEvent: port_dissociate(%d)\n", fd);
-
- if (port_dissociate(state->portfd, PORT_SOURCE_FD, fd) != 0) {
- perror("aeApiDelEvent: port_dissociate");
- abort(); /* will not return */
- }
- } else if (aeApiAssociate("aeApiDelEvent", state->portfd, fd,
- fullmask) != 0) {
- /*
- * ENOMEM is a potentially transient condition, but the kernel won't
- * generally return it unless things are really bad. EAGAIN indicates
- * we've reached an resource limit, for which it doesn't make sense to
- * retry (counter-intuitively). All other errors indicate a bug. In any
- * of these cases, the best we can do is to abort.
- */
- abort(); /* will not return */
- }
-}
-
-static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) {
- aeApiState *state = eventLoop->apidata;
- struct timespec timeout, *tsp;
- int mask, i;
- uint_t nevents;
- port_event_t event[MAX_EVENT_BATCHSZ];
-
- /*
- * If we've returned fd events before, we must re-associate them with the
- * port now, before calling port_get(). See the block comment at the top of
- * this file for an explanation of why.
- */
- for (i = 0; i < state->npending; i++) {
- if (state->pending_fds[i] == -1)
- /* This fd has since been deleted. */
- continue;
-
- if (aeApiAssociate("aeApiPoll", state->portfd,
- state->pending_fds[i], state->pending_masks[i]) != 0) {
- /* See aeApiDelEvent for why this case is fatal. */
- abort();
- }
-
- state->pending_masks[i] = AE_NONE;
- state->pending_fds[i] = -1;
- }
-
- state->npending = 0;
-
- if (tvp != NULL) {
- timeout.tv_sec = tvp->tv_sec;
- timeout.tv_nsec = tvp->tv_usec * 1000;
- tsp = &timeout;
- } else {
- tsp = NULL;
- }
-
- /*
- * port_getn can return with errno == ETIME having returned some events (!).
- * So if we get ETIME, we check nevents, too.
- */
- nevents = 1;
- if (port_getn(state->portfd, event, MAX_EVENT_BATCHSZ, &nevents,
- tsp) == -1 && (errno != ETIME || nevents == 0)) {
- if (errno == ETIME || errno == EINTR)
- return 0;
-
- /* Any other error indicates a bug. */
- perror("aeApiPoll: port_get");
- abort();
- }
-
- state->npending = nevents;
-
- for (i = 0; i < nevents; i++) {
- mask = 0;
- if (event[i].portev_events & POLLIN)
- mask |= AE_READABLE;
- if (event[i].portev_events & POLLOUT)
- mask |= AE_WRITABLE;
-
- eventLoop->fired[i].fd = event[i].portev_object;
- eventLoop->fired[i].mask = mask;
-
- if (evport_debug)
- fprintf(stderr, "aeApiPoll: fd %d mask 0x%x\n",
- (int)event[i].portev_object, mask);
-
- state->pending_fds[i] = event[i].portev_object;
- state->pending_masks[i] = (uintptr_t)event[i].portev_user;
- }
-
- return nevents;
-}
-
-static char *aeApiName(void) {
- return "evport";
-}
http://git-wip-us.apache.org/repos/asf/arrow/blob/62ef2cd8/cpp/src/plasma/thirdparty/ae/ae_kqueue.c
----------------------------------------------------------------------
diff --git a/cpp/src/plasma/thirdparty/ae/ae_kqueue.c b/cpp/src/plasma/thirdparty/ae/ae_kqueue.c
deleted file mode 100644
index 6796f4c..0000000
--- a/cpp/src/plasma/thirdparty/ae/ae_kqueue.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Kqueue(2)-based ae.c module
- *
- * Copyright (C) 2009 Harish Mallipeddi - harish.mallipeddi@gmail.com
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Redis nor the names of its contributors may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include <sys/types.h>
-#include <sys/event.h>
-#include <sys/time.h>
-
-typedef struct aeApiState {
- int kqfd;
- struct kevent *events;
-} aeApiState;
-
-static int aeApiCreate(aeEventLoop *eventLoop) {
- aeApiState *state = zmalloc(sizeof(aeApiState));
-
- if (!state) return -1;
- state->events = zmalloc(sizeof(struct kevent)*eventLoop->setsize);
- if (!state->events) {
- zfree(state);
- return -1;
- }
- state->kqfd = kqueue();
- if (state->kqfd == -1) {
- zfree(state->events);
- zfree(state);
- return -1;
- }
- eventLoop->apidata = state;
- return 0;
-}
-
-static int aeApiResize(aeEventLoop *eventLoop, int setsize) {
- aeApiState *state = eventLoop->apidata;
-
- state->events = zrealloc(state->events, sizeof(struct kevent)*setsize);
- return 0;
-}
-
-static void aeApiFree(aeEventLoop *eventLoop) {
- aeApiState *state = eventLoop->apidata;
-
- close(state->kqfd);
- zfree(state->events);
- zfree(state);
-}
-
-static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) {
- aeApiState *state = eventLoop->apidata;
- struct kevent ke;
-
- if (mask & AE_READABLE) {
- EV_SET(&ke, fd, EVFILT_READ, EV_ADD, 0, 0, NULL);
- if (kevent(state->kqfd, &ke, 1, NULL, 0, NULL) == -1) return -1;
- }
- if (mask & AE_WRITABLE) {
- EV_SET(&ke, fd, EVFILT_WRITE, EV_ADD, 0, 0, NULL);
- if (kevent(state->kqfd, &ke, 1, NULL, 0, NULL) == -1) return -1;
- }
- return 0;
-}
-
-static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) {
- aeApiState *state = eventLoop->apidata;
- struct kevent ke;
-
- if (mask & AE_READABLE) {
- EV_SET(&ke, fd, EVFILT_READ, EV_DELETE, 0, 0, NULL);
- kevent(state->kqfd, &ke, 1, NULL, 0, NULL);
- }
- if (mask & AE_WRITABLE) {
- EV_SET(&ke, fd, EVFILT_WRITE, EV_DELETE, 0, 0, NULL);
- kevent(state->kqfd, &ke, 1, NULL, 0, NULL);
- }
-}
-
-static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) {
- aeApiState *state = eventLoop->apidata;
- int retval, numevents = 0;
-
- if (tvp != NULL) {
- struct timespec timeout;
- timeout.tv_sec = tvp->tv_sec;
- timeout.tv_nsec = tvp->tv_usec * 1000;
- retval = kevent(state->kqfd, NULL, 0, state->events, eventLoop->setsize,
- &timeout);
- } else {
- retval = kevent(state->kqfd, NULL, 0, state->events, eventLoop->setsize,
- NULL);
- }
-
- if (retval > 0) {
- int j;
-
- numevents = retval;
- for(j = 0; j < numevents; j++) {
- int mask = 0;
- struct kevent *e = state->events+j;
-
- if (e->filter == EVFILT_READ) mask |= AE_READABLE;
- if (e->filter == EVFILT_WRITE) mask |= AE_WRITABLE;
- eventLoop->fired[j].fd = e->ident;
- eventLoop->fired[j].mask = mask;
- }
- }
- return numevents;
-}
-
-static char *aeApiName(void) {
- return "kqueue";
-}
http://git-wip-us.apache.org/repos/asf/arrow/blob/62ef2cd8/cpp/src/plasma/thirdparty/ae/ae_select.c
----------------------------------------------------------------------
diff --git a/cpp/src/plasma/thirdparty/ae/ae_select.c b/cpp/src/plasma/thirdparty/ae/ae_select.c
deleted file mode 100644
index c039a8e..0000000
--- a/cpp/src/plasma/thirdparty/ae/ae_select.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Select()-based ae.c module.
- *
- * Copyright (c) 2009-2012, Salvatore Sanfilippo <antirez at gmail dot com>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Redis nor the names of its contributors may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include <sys/select.h>
-#include <string.h>
-
-typedef struct aeApiState {
- fd_set rfds, wfds;
- /* We need to have a copy of the fd sets as it's not safe to reuse
- * FD sets after select(). */
- fd_set _rfds, _wfds;
-} aeApiState;
-
-static int aeApiCreate(aeEventLoop *eventLoop) {
- aeApiState *state = zmalloc(sizeof(aeApiState));
-
- if (!state) return -1;
- FD_ZERO(&state->rfds);
- FD_ZERO(&state->wfds);
- eventLoop->apidata = state;
- return 0;
-}
-
-static int aeApiResize(aeEventLoop *eventLoop, int setsize) {
- /* Just ensure we have enough room in the fd_set type. */
- if (setsize >= FD_SETSIZE) return -1;
- return 0;
-}
-
-static void aeApiFree(aeEventLoop *eventLoop) {
- zfree(eventLoop->apidata);
-}
-
-static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) {
- aeApiState *state = eventLoop->apidata;
-
- if (mask & AE_READABLE) FD_SET(fd,&state->rfds);
- if (mask & AE_WRITABLE) FD_SET(fd,&state->wfds);
- return 0;
-}
-
-static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) {
- aeApiState *state = eventLoop->apidata;
-
- if (mask & AE_READABLE) FD_CLR(fd,&state->rfds);
- if (mask & AE_WRITABLE) FD_CLR(fd,&state->wfds);
-}
-
-static int aeApiPoll(aeEventLoop *eventLoop, struct timeval *tvp) {
- aeApiState *state = eventLoop->apidata;
- int retval, j, numevents = 0;
-
- memcpy(&state->_rfds,&state->rfds,sizeof(fd_set));
- memcpy(&state->_wfds,&state->wfds,sizeof(fd_set));
-
- retval = select(eventLoop->maxfd+1,
- &state->_rfds,&state->_wfds,NULL,tvp);
- if (retval > 0) {
- for (j = 0; j <= eventLoop->maxfd; j++) {
- int mask = 0;
- aeFileEvent *fe = &eventLoop->events[j];
-
- if (fe->mask == AE_NONE) continue;
- if (fe->mask & AE_READABLE && FD_ISSET(j,&state->_rfds))
- mask |= AE_READABLE;
- if (fe->mask & AE_WRITABLE && FD_ISSET(j,&state->_wfds))
- mask |= AE_WRITABLE;
- eventLoop->fired[numevents].fd = j;
- eventLoop->fired[numevents].mask = mask;
- numevents++;
- }
- }
- return numevents;
-}
-
-static char *aeApiName(void) {
- return "select";
-}
http://git-wip-us.apache.org/repos/asf/arrow/blob/62ef2cd8/cpp/src/plasma/thirdparty/ae/config.h
----------------------------------------------------------------------
diff --git a/cpp/src/plasma/thirdparty/ae/config.h b/cpp/src/plasma/thirdparty/ae/config.h
deleted file mode 100644
index 4f8e1ea..0000000
--- a/cpp/src/plasma/thirdparty/ae/config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2009-2012, Salvatore Sanfilippo <antirez at gmail dot com>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Redis nor the names of its contributors may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-#ifdef __APPLE__
-#include <AvailabilityMacros.h>
-#endif
-
-/* Test for polling API */
-#ifdef __linux__
-#define HAVE_EPOLL 1
-#endif
-
-#if (defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_6)) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__)
-#define HAVE_KQUEUE 1
-#endif
-
-#ifdef __sun
-#include <sys/feature_tests.h>
-#ifdef _DTRACE_VERSION
-#define HAVE_EVPORT 1
-#endif
-#endif
-
-
-#endif
http://git-wip-us.apache.org/repos/asf/arrow/blob/62ef2cd8/cpp/src/plasma/thirdparty/ae/zmalloc.h
----------------------------------------------------------------------
diff --git a/cpp/src/plasma/thirdparty/ae/zmalloc.h b/cpp/src/plasma/thirdparty/ae/zmalloc.h
deleted file mode 100644
index 6c27dd4..0000000
--- a/cpp/src/plasma/thirdparty/ae/zmalloc.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2009-2012, Salvatore Sanfilippo <antirez at gmail dot com>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Redis nor the names of its contributors may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _ZMALLOC_H
-#define _ZMALLOC_H
-
-#ifndef zmalloc
-#define zmalloc malloc
-#endif
-
-#ifndef zfree
-#define zfree free
-#endif
-
-#ifndef zrealloc
-#define zrealloc realloc
-#endif
-
-#endif /* _ZMALLOC_H */