diff --git a/dix/dixutils.c b/dix/dixutils.c index 3f24629b4..c250bb1db 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -849,7 +849,7 @@ DeleteCallbackList(CallbackListPtr *pcbl) } void -InitCallbackManager(void) +DeleteCallbackManager(void) { int i; @@ -861,3 +861,9 @@ InitCallbackManager(void) numCallbackListsToCleanup = 0; listsToCleanup = NULL; } + +void +InitCallbackManager(void) +{ + DeleteCallbackManager(); +} diff --git a/dix/main.c b/dix/main.c index 1fa05040f..e69cd931f 100644 --- a/dix/main.c +++ b/dix/main.c @@ -366,6 +366,8 @@ main(int argc, char *argv[], char *envp[]) FreeAuditTimer(); + DeleteCallbackManager(); + if (dispatchException & DE_TERMINATE) { CloseWellKnownConnections(); } diff --git a/include/callback.h b/include/callback.h index ed6b678a8..b42708960 100644 --- a/include/callback.h +++ b/include/callback.h @@ -86,5 +86,6 @@ CallCallbacks(CallbackListPtr *pcbl, pointer call_data) extern _X_EXPORT void DeleteCallbackList(CallbackListPtr * /*pcbl */ ); extern _X_EXPORT void InitCallbackManager(void); +extern _X_EXPORT void DeleteCallbackManager(void); #endif /* CALLBACK_H */