/* Copyright (c) 2008-2012 Red Hat, Inc. 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 _TIMER_H #define _TIMER_H #include "glusterfs.h" #include "xlator.h" #include #include typedef void (*gf_timer_cbk_t)(void *); struct _gf_timer { union { struct list_head list; struct { struct _gf_timer *next; struct _gf_timer *prev; }; }; struct timespec at; gf_timer_cbk_t callbk; void *data; xlator_t *xl; gf_boolean_t fired; }; struct _gf_timer_registry { pthread_t th; char fin; struct list_head active; gf_lock_t lock; }; typedef struct _gf_timer gf_timer_t; typedef struct _gf_timer_registry gf_timer_registry_t; gf_timer_t * gf_timer_call_after(glusterfs_ctx_t *ctx, struct timespec delta, gf_timer_cbk_t cbk, void *data); int32_t gf_timer_call_cancel(glusterfs_ctx_t *ctx, gf_timer_t *event); void gf_timer_registry_destroy(glusterfs_ctx_t *ctx); #endif /* _TIMER_H */ not installed with 'make install', but do have a main() like function. These scripts are expected to be used by developers for different tasks (mostly code generation). Marking these scripts executable to make it easier to identify them. Change-Id: I73541471deb7e0830766b804786244e73dfe4221 Updates: #411 Signed-off-by: Niels de Vos <ndevos@redhat.com> core: python3 2018-09-03T09:14:44+00:00 Kaleb S. KEITHLEY kkeithle@redhat.com 2018-08-29T15:09:27+00:00 af0d5a9b5375a5cd87ac10b429e2b9934718ce5b see https://review.gluster.org/#/c/19788/, https://review.gluster.org/#/c/19871/, https://review.gluster.org/#/c/19952/, https://review.gluster.org/#/c/20104/, https://review.gluster.org/#/c/20162/, https://review.gluster.org/#/c/20185/, https://review.gluster.org/#/c/20207/, https://review.gluster.org/#/c/20227/, https://review.gluster.org/#/c/20307/, https://review.gluster.org/#/c/20320/, https://review.gluster.org/#/c/20332/, https://review.gluster.org/#/c/20364/, https://review.gluster.org/#/c/20441/, and https://review.gluster.org/#/c/20484 shebangs changed from /usr/bin/python2 to /usr/bin/python3. (Reminder, various distribution packaging guidelines require use of explicit python version and don't allow '#!/usr/bin/env python', regardless of how handy that idiom may be.) glusterfs.spec(.in) package python{2,3}-gluster and python2 or python3 dependencies as appropriate. configure(.ac): + test for and use python2 or python3 as appropriate. If build machine has python2 and python3, use python3. Override by setting PYTHON=/usr/bin/python2 when running configure. + PYTHONDEV_CPPFLAGS from python[23]-config --includes is a better match to the original python sysconfig.get_python_inc(). All those other extraneous flags breaks the build. + Only change the shebangs once. Changing them over and over again, e.g., during a `make glusterrpms` in extras/LinuxRPM just sends make (is it really make that's looping?) into an infinite loop. If you figure out why, let me