Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of azure_c_shared_utility by
condition.h
00001 // Copyright (c) Microsoft. All rights reserved. 00002 // Licensed under the MIT license. See LICENSE file in the project root for full license information. 00003 00004 #ifndef CONDITION_H 00005 #define CONDITION_H 00006 00007 #include "azure_c_shared_utility/macro_utils.h" 00008 #include "azure_c_shared_utility/lock.h" 00009 #include "azure_c_shared_utility/umock_c_prod.h" 00010 00011 #ifdef __cplusplus 00012 extern "C" { 00013 #endif 00014 00015 typedef void* COND_HANDLE; 00016 00017 #define COND_RESULT_VALUES \ 00018 COND_OK, \ 00019 COND_INVALID_ARG, \ 00020 COND_ERROR, \ 00021 COND_TIMEOUT \ 00022 00023 /** 00024 * @brief Enumeration specifying the lock status. 00025 */ 00026 DEFINE_ENUM(COND_RESULT, COND_RESULT_VALUES); 00027 00028 /** 00029 * @brief This API creates and returns a valid condition handle. 00030 * 00031 * @return A valid @c COND_HANDLE when successful or @c NULL otherwise. 00032 */ 00033 MOCKABLE_FUNCTION(, COND_HANDLE, Condition_Init); 00034 00035 /** 00036 * @brief unblock all currently working condition. 00037 * 00038 * @param handle A valid handle to the lock. 00039 * 00040 * @return Returns @c COND_OK when the condition object has been 00041 * destroyed and @c COND_ERROR when an error occurs 00042 * and @c COND_TIMEOUT when the handle times out. 00043 */ 00044 MOCKABLE_FUNCTION(, COND_RESULT, Condition_Post, COND_HANDLE, handle); 00045 00046 /** 00047 * @brief block on the condition handle unti the thread is signalled 00048 * or until the timeout_milliseconds is reached. 00049 * 00050 * @param handle A valid handle to the lock. 00051 * 00052 * @return Returns @c COND_OK when the condition object has been 00053 * destroyed and @c COND_ERROR when an error occurs 00054 * and @c COND_TIMEOUT when the handle times out. 00055 */ 00056 MOCKABLE_FUNCTION(, COND_RESULT, Condition_Wait, COND_HANDLE, handle, LOCK_HANDLE, lock, int, timeout_milliseconds); 00057 00058 /** 00059 * @brief The condition instance is deinitialized. 00060 * 00061 * @param handle A valid handle to the condition. 00062 * 00063 * @return Returns @c COND_OK when the condition object has been 00064 * destroyed and @c COND_ERROR when an error occurs. 00065 */ 00066 MOCKABLE_FUNCTION(, void, Condition_Deinit, COND_HANDLE, handle); 00067 00068 #ifdef __cplusplus 00069 } 00070 #endif 00071 00072 #endif /* CONDITION_H */
Generated on Tue Jul 12 2022 19:14:38 by
