Sorting out rebase

This commit is contained in:
Johan Wikman
2017-03-24 11:35:38 +02:00
parent b89cf62d38
commit 64ab48f698
4 changed files with 7 additions and 73 deletions

View File

@ -19,6 +19,8 @@
#include <maxscale/cdefs.h> #include <maxscale/cdefs.h>
#include <sys/epoll.h> #include <sys/epoll.h>
MXS_BEGIN_DECLS
typedef enum mxs_poll_action typedef enum mxs_poll_action
{ {
MXS_POLL_NOP = 0x00, MXS_POLL_NOP = 0x00,
@ -96,3 +98,5 @@ int poll_add_fd_to_worker(int wid, int fd, uint32_t events, MXS_POLL_DATA* data)
* @return 0 on success, non-zero on failure. * @return 0 on success, non-zero on failure.
*/ */
int poll_remove_fd_from_worker(int wid, int fd); int poll_remove_fd_from_worker(int wid, int fd);
MXS_END_DECLS

View File

@ -1,4 +1,3 @@
<<<<<<< 11c7812d5d69c4fadef32cae5b7c121f2f596e38
add_library(maxscale-common SHARED add_library(maxscale-common SHARED
adminusers.cc adminusers.cc
alloc.cc alloc.cc

View File

@ -139,9 +139,9 @@ void dcb_global_init()
if ((zombies = (DCB**)MXS_CALLOC(nthreads, sizeof(DCB*))) == NULL || if ((zombies = (DCB**)MXS_CALLOC(nthreads, sizeof(DCB*))) == NULL ||
(all_dcbs = (DCB**)MXS_CALLOC(nthreads, sizeof(DCB*))) == NULL || (all_dcbs = (DCB**)MXS_CALLOC(nthreads, sizeof(DCB*))) == NULL ||
(all_dcbs_lock = (SPINLOCK**)MXS_CALLOC(nthreads, sizeof(SPINLOCK))) == NULL || (all_dcbs_lock = (SPINLOCK*)MXS_CALLOC(nthreads, sizeof(SPINLOCK))) == NULL ||
(nzombies = (int*)MXS_CALLOC(nthreads, sizeof(int))) == NULL || (nzombies = (int*)MXS_CALLOC(nthreads, sizeof(int))) == NULL ||
(fake_events = (fake_event_t*)MXS_CALLOC(nthreads, sizeof(fake_event_t*))) == NULL || (fake_events = (fake_event_t**)MXS_CALLOC(nthreads, sizeof(fake_event_t*))) == NULL ||
(fake_event_lock = (SPINLOCK*)MXS_CALLOC(nthreads, sizeof(SPINLOCK))) == NULL) (fake_event_lock = (SPINLOCK*)MXS_CALLOC(nthreads, sizeof(SPINLOCK))) == NULL)
{ {
MXS_OOM(); MXS_OOM();
@ -3447,7 +3447,7 @@ static void poll_add_event_to_dcb(DCB* dcb,
GWBUF* buf, GWBUF* buf,
uint32_t ev) uint32_t ev)
{ {
fake_event_t *event = MXS_MALLOC(sizeof(*event)); fake_event_t *event = (fake_event_t*)MXS_MALLOC(sizeof(*event));
if (event) if (event)
{ {

View File

@ -1307,75 +1307,6 @@ poll_loadav(void *data)
} }
} }
<<<<<<< 6b2042c75fd64c7a8d0fa2fca4c68d02dd0c8a62:server/core/poll.cc
void poll_add_epollin_event_to_dcb(DCB* dcb,
GWBUF* buf)
{
__uint32_t ev;
ev = EPOLLIN;
poll_add_event_to_dcb(dcb, buf, ev);
}
static void poll_add_event_to_dcb(DCB* dcb,
GWBUF* buf,
uint32_t ev)
{
fake_event_t *event = (fake_event_t*)MXS_MALLOC(sizeof(*event));
if (event)
{
event->data = buf;
event->dcb = dcb;
event->event = ev;
event->next = NULL;
event->tail = event;
int thr = dcb->poll.thread.id;
/** It is possible that a housekeeper or a monitor thread inserts a fake
* event into the thread's event queue which is why the operation needs
* to be protected by a spinlock */
spinlock_acquire(&fake_event_lock[thr]);
if (fake_events[thr])
{
fake_events[thr]->tail->next = event;
fake_events[thr]->tail = event;
}
else
{
fake_events[thr] = event;
}
spinlock_release(&fake_event_lock[thr]);
}
}
void poll_fake_write_event(DCB *dcb)
{
poll_add_event_to_dcb(dcb, NULL, EPOLLOUT);
}
void poll_fake_read_event(DCB *dcb)
{
poll_add_event_to_dcb(dcb, NULL, EPOLLIN);
}
void poll_fake_hangup_event(DCB *dcb)
{
#ifdef EPOLLRDHUP
uint32_t ev = EPOLLRDHUP;
#else
uint32_t ev = EPOLLHUP;
#endif
poll_add_event_to_dcb(dcb, NULL, ev);
}
=======
>>>>>>> Move DCB specific event handling to dcb.c:server/core/poll.c
/** /**
* Print the event queue statistics * Print the event queue statistics
* *