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:
parent
78eab19c62
commit
260f829046
@ -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
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user