diff options
author | Niels de Vos <ndevos@redhat.com> | 2017-04-17 15:50:07 +0530 |
---|---|---|
committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2017-05-01 09:30:14 +0000 |
commit | 73fcf3a874b2049da31d01b8363d1ac85c9488c2 (patch) | |
tree | b9db965e337fde22a7668cb11ffb0351619a924f /libglusterfs/src/tw.h | |
parent | 859669759f7fa0f2114add13660ce3bf16c77f30 (diff) |
core: make the per glusterfs_ctx_t timer-wheel refcounted
xlators can use a 'global' timer-wheel for scheduling events. This
timer-wheel is managed per glusterfs_ctx_t, but does not need to be
allocated for every graph. When an xlator wants to use the timer-wheel,
it will be instanciated on demand, and provided to xlators that request
it later on.
By adding a reference counter to the glusterfs_ctx_t for the
timer-wheel, the threads and structures can be cleaned up when the last
xlator does not have a need for it anymore. In general, the xlators
request the timer-wheel in init(), and they should return it in fini().
Because the timer-wheel is managed per glusterfs_ctx_t, the functions
can be added to ctx.c and do not need to live in their very minimal
tw.[ch] files.
Change-Id: I19d225b39aaa272d9005ba7adc3104c3764f1572
BUG: 1442788
Reported-by: Poornima G <pgurusid@redhat.com>
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: https://review.gluster.org/17068
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Zhou Zhengping <johnzzpcrystal@gmail.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'libglusterfs/src/tw.h')
-rw-r--r-- | libglusterfs/src/tw.h | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/libglusterfs/src/tw.h b/libglusterfs/src/tw.h deleted file mode 100644 index e635cd2b496..00000000000 --- a/libglusterfs/src/tw.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2008-2015 Red Hat, Inc. <http://www.redhat.com> - This file is part of GlusterFS. - - This file is licensed to you under your choice of the GNU Lesser - General Public License, version 3 or any later version (LGPLv3 or - later), or the GNU General Public License, version 2 (GPLv2), in all - cases as published by the Free Software Foundation. -*/ - -#ifndef __TW_H__ -#define __TW_H__ - -#include "xlator.h" -#include "glusterfs.h" - -int -glusterfs_global_timer_wheel_init (glusterfs_ctx_t *); - -struct tvec_base * -glusterfs_global_timer_wheel (xlator_t *); - -#endif /* __TW_H__ */ |