Merge branch '1.2.1-binlog_router_trx' into develop
This commit is contained in:
@ -642,11 +642,10 @@ struct stat statb;
|
|||||||
void
|
void
|
||||||
blr_close_binlog(ROUTER_INSTANCE *router, BLFILE *file)
|
blr_close_binlog(ROUTER_INSTANCE *router, BLFILE *file)
|
||||||
{
|
{
|
||||||
spinlock_acquire(&file->lock);
|
spinlock_acquire(&router->fileslock);
|
||||||
file->refcnt--;
|
file->refcnt--;
|
||||||
if (file->refcnt == 0)
|
if (file->refcnt == 0)
|
||||||
{
|
{
|
||||||
spinlock_acquire(&router->fileslock);
|
|
||||||
if (router->files == file)
|
if (router->files == file)
|
||||||
router->files = file->next;
|
router->files = file->next;
|
||||||
else
|
else
|
||||||
@ -657,18 +656,18 @@ blr_close_binlog(ROUTER_INSTANCE *router, BLFILE *file)
|
|||||||
if (ptr)
|
if (ptr)
|
||||||
ptr->next = file->next;
|
ptr->next = file->next;
|
||||||
}
|
}
|
||||||
spinlock_release(&router->fileslock);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
file = NULL;
|
||||||
|
}
|
||||||
|
spinlock_release(&router->fileslock);
|
||||||
|
|
||||||
|
if (file)
|
||||||
|
{
|
||||||
close(file->fd);
|
close(file->fd);
|
||||||
file->fd = -1;
|
file->fd = -1;
|
||||||
}
|
|
||||||
|
|
||||||
if (file->refcnt == 0) {
|
|
||||||
spinlock_release(&file->lock);
|
|
||||||
|
|
||||||
free(file);
|
free(file);
|
||||||
} else {
|
|
||||||
spinlock_release(&file->lock);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user