This commit is contained in:
Markus Makela
2015-07-15 15:00:35 +03:00
4 changed files with 21 additions and 19 deletions

View File

@ -1,3 +1,4 @@
[Search page for MaxScale Documentation](http://mariadb-corporation.github.io/MaxScale/Search/) [Search page for MaxScale Documentation](http://mariadb-corporation.github.io/MaxScale/Search/)
# Contents # Contents
@ -19,8 +20,8 @@
## Upgrading MaxScale ## Upgrading MaxScale
- [Upgrading MaxScale from 1.1.1 to 1.2.0](Upgrading-To-MaxScale-1.2.0.md) - [Upgrading MaxScale from 1.1.1 to 1.2.0](Upgrading/Upgrading-To-MaxScale-1.2.0.md)
- [Upgrading MaxScale from 1.0.5 to 1.1.0](Upgrading-To-MaxScale-1.1.0.md) - [Upgrading MaxScale from 1.0.5 to 1.1.0](Upgrading/Upgrading-To-MaxScale-1.1.0.md)
## Reference ## Reference

View File

@ -370,24 +370,25 @@ poll_remove_dcb(DCB *dcb)
/** /**
* Only positive fds can be removed from epoll set. * Only positive fds can be removed from epoll set.
* Cloned DCBs are in the epoll set but do not have a valid file descriptor. * Cloned DCBs can have a state of DCB_STATE_POLLING but are not in
*/ * the epoll set and do not have a valid file descriptor. Hence the
if (dcb->fd > 0) { * only action for them is already done - the change of state to
rc = epoll_ctl(epoll_fd, EPOLL_CTL_DEL, dcb->fd, &ev); * DCB_STATE_NOPOLLING.
/** */
* The poll_resolve_error function will always spinlock_release(&dcb->dcb_initlock);
* return 0 or crash. So if it returns non-zero result, if (dcb->fd > 0)
* things have gone wrong and we crash. {
*/ rc = epoll_ctl(epoll_fd, EPOLL_CTL_DEL, dcb->fd, &ev);
if (rc) rc = poll_resolve_error(dcb, errno, false); /**
if (rc) raise(SIGABRT); * The poll_resolve_error function will always
* return 0 or crash. So if it returns non-zero result,
* things have gone wrong and we crash.
*/
if (rc) rc = poll_resolve_error(dcb, errno, false);
if (rc) raise(SIGABRT);
/*< Set bit for each maxscale thread */
bitmask_copy(&dcb->memdata.bitmask, poll_bitmask());
} }
else
{
rc = 0;
}
/*< Set bit for each maxscale thread */
bitmask_copy(&dcb->memdata.bitmask, poll_bitmask());
return rc; return rc;
} }