Add blank line to start of Document Contents (link otherwise not rendered correctly by web site); move upgrade documents into their own directory; modify poll.c to fix problem relating to cloned DCBs.

This commit is contained in:
counterpoint 2015-07-15 08:34:00 +01:00
parent 78eab19c62
commit 260f829046
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/)
# Contents
@ -19,8 +20,8 @@
## Upgrading MaxScale
- [Upgrading MaxScale from 1.1.1 to 1.2.0](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.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/Upgrading-To-MaxScale-1.1.0.md)
## Reference

View File

@ -370,24 +370,25 @@ poll_remove_dcb(DCB *dcb)
/**
* Only positive fds can be removed from epoll set.
* Cloned DCBs are in the epoll set but do not have a valid file descriptor.
*/
if (dcb->fd > 0) {
rc = epoll_ctl(epoll_fd, EPOLL_CTL_DEL, dcb->fd, &ev);
/**
* 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);
* 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
* only action for them is already done - the change of state to
* DCB_STATE_NOPOLLING.
*/
spinlock_release(&dcb->dcb_initlock);
if (dcb->fd > 0)
{
rc = epoll_ctl(epoll_fd, EPOLL_CTL_DEL, dcb->fd, &ev);
/**
* 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;
}