Skip to content
Snippets Groups Projects
Commit d8a9a0c5 authored by dmitriy.gerasimov's avatar dmitriy.gerasimov
Browse files

Merge branch 'bugs-3666' into 'master'

bugs-3666

See merge request libdap!43
parents 81b95e3d 126fa648
No related branches found
No related tags found
1 merge request!24Support 3689
......@@ -235,10 +235,11 @@ typedef struct dap_log_history_str_s {
#define DAP_INTERVAL_TIMERS_MAX 15
typedef void (*dap_timer_callback_t)(void);
typedef void (*dap_timer_callback_t)(void *param);
typedef struct dap_timer_interface {
void *timer;
dap_timer_callback_t callback;
void *param;
} dap_timer_interface_t;
#ifdef __cplusplus
......@@ -385,7 +386,7 @@ size_t dap_bin2hex(char *a_out, const void *a_in, size_t a_len);
void dap_digit_from_string(const char *num_str, void *raw, size_t raw_len);
void dap_digit_from_string2(const char *num_str, void *raw, size_t raw_len);
void *dap_interval_timer_create(unsigned int a_msec, dap_timer_callback_t a_callback);
void *dap_interval_timer_create(unsigned int a_msec, dap_timer_callback_t a_callback, void *a_param);
int dap_interval_timer_delete(void *a_timer);
#ifdef __MINGW32__
......
......@@ -827,12 +827,12 @@ static int s_timer_find(void *a_timer)
static void CALLBACK s_win_callback(PVOID a_arg, BOOLEAN a_always_true)
{
UNUSED(a_always_true);
s_timers[(int)a_arg].callback();
s_timers[(int)a_arg].callback(s_timers[(int)a_arg].param);
}
#else
static void s_posix_callback(union sigval a_arg)
{
s_timers[a_arg.sival_int].callback();
s_timers[a_arg.sival_int].callback(s_timers[a_arg.sival_int].param);
}
#endif
......@@ -842,7 +842,7 @@ static void s_posix_callback(union sigval a_arg)
* \param a_callback Function to be called with timer period
* \return pointer to timer object if success, otherwise return NULL
*/
void *dap_interval_timer_create(unsigned int a_msec, dap_timer_callback_t a_callback)
void *dap_interval_timer_create(unsigned int a_msec, dap_timer_callback_t a_callback, void *a_param)
{
if (s_timers_count == DAP_INTERVAL_TIMERS_MAX) {
return NULL;
......@@ -876,6 +876,7 @@ void *dap_interval_timer_create(unsigned int a_msec, dap_timer_callback_t a_call
#endif
s_timers[s_timers_count].timer = (void *)l_timer;
s_timers[s_timers_count].callback = a_callback;
s_timers[s_timers_count].param = a_param;
s_timers_count++;
#ifdef _WIN32
LeaveCriticalSection(&s_timers_lock);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment