Threaded execution support interface added. Optional built-in threading implementatio...
[ode.git] / ode / src / threading_impl.h
blob5dde821128f828c72147e314dfd80b320d13557f
1 /*************************************************************************
2 * *
3 * Open Dynamics Engine, Copyright (C) 2001-2003 Russell L. Smith. *
4 * All rights reserved. Email: russ@q12.org Web: www.q12.org *
5 * *
6 * Threading implementation private header file. *
7 * Copyright (C) 2011-2012 Oleh Derevenko. All rights reserved. *
8 * e-mail: odar@eleks.com (change all "a" to "e") *
9 * *
10 * This library is free software; you can redistribute it and/or *
11 * modify it under the terms of EITHER: *
12 * (1) The GNU Lesser General Public License as published by the Free *
13 * Software Foundation; either version 2.1 of the License, or (at *
14 * your option) any later version. The text of the GNU Lesser *
15 * General Public License is included with this library in the *
16 * file LICENSE.TXT. *
17 * (2) The BSD-style license that is included with this library in *
18 * the file LICENSE-BSD.TXT. *
19 * *
20 * This library is distributed in the hope that it will be useful, *
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files *
23 * LICENSE.TXT and LICENSE-BSD.TXT for more details. *
24 * *
25 *************************************************************************/
28 * Threading implementation header for library private functions.
32 #ifndef _ODE__PRIVATE_THREADING_IMPL_H_
33 #define _ODE__PRIVATE_THREADING_IMPL_H_
36 #include <ode/threading.h>
39 // This function has been removed from public headers as there is no need for it
40 // to be accessible to outer code at this time. In future it is possible
41 // it could be published back again.
42 /**
43 * @brief Allocates built-in self-threaded threading implementation object.
45 * A self-threaded implementation is a type of implementation that performs
46 * processing of posted calls by means of caller thread itself. This type of
47 * implementation does not need thread pool to serve it.
49 * The processing is arranged in a way to prevent call stack depth growth
50 * as more and more nested calls are posted.
52 * @returns ID of object allocated or NULL on failure
54 * @ingroup threading
55 * @see dThreadingAllocateMultiThreadedImplementation
56 * @see dThreadingFreeImplementation
58 /*ODE_API */dThreadingImplementationID dThreadingAllocateSelfThreadedImplementation();
62 #endif // #ifndef _ODE__PRIVATE_THREADING_IMPL_H_