Merge branch '1.2.1-binlog_router_trx' into develop

This commit is contained in:
MassimilianoPinto
2015-11-30 09:40:04 +01:00

View File

@ -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);
} }
} }