From db69ebcbcebbd3882d2eee7df8de15c3dc9c309b Mon Sep 17 00:00:00 2001 From: Derrell Lipman Date: Sun, 10 May 2009 22:31:37 -0400 Subject: Provide a libsmbclient interface for programs requiring threads - This adds two functions: smbc_thread_posix() which provides access to the internal threading implementation using pthread; and smbc_thread_impl() where the user provides each of the functions required by Samba, to give access to the thread implementation's native capabilities. Derrell --- source3/libsmb/libsmb_thread_posix.c | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source3/libsmb/libsmb_thread_posix.c (limited to 'source3/libsmb/libsmb_thread_posix.c') diff --git a/source3/libsmb/libsmb_thread_posix.c b/source3/libsmb/libsmb_thread_posix.c new file mode 100644 index 0000000000..411ffbdfbb --- /dev/null +++ b/source3/libsmb/libsmb_thread_posix.c @@ -0,0 +1,49 @@ +/* + Unix SMB/Netbios implementation. + SMB client library implementation + Copyright (C) Derrell Lipman 2009 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include "includes.h" +#include "libsmbclient.h" +#include "libsmb_internal.h" + + +/* Get rid of the malloc checker */ +#ifdef malloc +#undef malloc +#endif + +/* + * Define the functions which implement the pthread interface + */ +SMB_THREADS_DEF_PTHREAD_IMPLEMENTATION(tf); + + +/** + * Initialize for threads using the Posix Threads (pthread) + * implementation. This is a built-in implementation, avoiding the need to + * implement the component functions of the thread interface. If this function + * is used, it is not necessary to call smbc_thread_impl(). + * + * @return {void} + */ +void +smbc_thread_posix(void) +{ + smb_thread_set_functions(&tf); +} -- cgit