Wait until housekeeper has finished
When calling hkshutdown(), only a shutdown flag will be set. In main() we will then actually wait for the housekeeper thread to finish before exiting.
This commit is contained in:
@ -51,11 +51,34 @@ typedef struct hktask
|
||||
struct hktask *next; /*< Next task in the list */
|
||||
} HKTASK;
|
||||
|
||||
extern void hkinit();
|
||||
/**
|
||||
* Initialises the housekeeper mechanism.
|
||||
*
|
||||
* A call to any of the other housekeeper functions can be made only if
|
||||
* this function returns successfully.
|
||||
*
|
||||
* @return True if the housekeeper mechanism was initialized, false otherwise.
|
||||
*/
|
||||
extern bool hkinit();
|
||||
|
||||
/**
|
||||
* Shuts down the housekeeper mechanism.
|
||||
*
|
||||
* Should be called @b only if @c hkinit() returned successfully.
|
||||
*
|
||||
* @see hkinit hkfinish
|
||||
*/
|
||||
extern void hkshutdown();
|
||||
|
||||
/**
|
||||
* Waits for the housekeeper thread to finish. Should be called only after
|
||||
* hkshutdown() has been called.
|
||||
*/
|
||||
extern void hkfinish();
|
||||
|
||||
extern int hktask_add(const char *name, void (*task)(void *), void *data, int frequency);
|
||||
extern int hktask_oneshot(const char *name, void (*task)(void *), void *data, int when);
|
||||
extern int hktask_remove(const char *name);
|
||||
extern void hkshutdown();
|
||||
extern void hkshow_tasks(DCB *pdcb);
|
||||
|
||||
MXS_END_DECLS
|
||||
|
22
include/maxscale/semaphore.h
Normal file
22
include/maxscale/semaphore.h
Normal file
@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
/*
|
||||
* Copyright (c) 2016 MariaDB Corporation Ab
|
||||
*
|
||||
* Use of this software is governed by the Business Source License included
|
||||
* in the LICENSE.TXT file and at www.mariadb.com/bsl.
|
||||
*
|
||||
* Change Date: 2019-07-01
|
||||
*
|
||||
* On the date above, in accordance with the Business Source License, use
|
||||
* of this software will be governed by version 2 or later of the General
|
||||
* Public License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file semaphore.h Semaphores used by MaxScale.
|
||||
*/
|
||||
|
||||
// As a minimal preparation for other environments than Linux, components
|
||||
// include <maxscale/semaphore.h>, instead of including <semaphore.h>
|
||||
// directly.
|
||||
#include <semaphore.h>
|
Reference in New Issue
Block a user