Skip to content

Commit 2d1d151

Browse files
Samuel HSamuel H
Samuel H
authored and
Samuel H
committed
Updated to use the newer Furi mutex api.
1 parent 70ec58b commit 2d1d151

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

i2ctools.c

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
#include "i2ctools_i.h"
22

33
void i2ctools_draw_callback(Canvas* canvas, void* ctx) {
4-
i2cTools* i2ctools = acquire_mutex((ValueMutex*)ctx, 25);
4+
i2cTools* i2ctools = ctx;
5+
if(furi_mutex_acquire(i2ctools->mutex, 200) != FuriStatusOk) {
6+
return;
7+
}
58

69
switch(i2ctools->main_view->current_view) {
710
case MAIN_VIEW:
@@ -23,7 +26,7 @@ void i2ctools_draw_callback(Canvas* canvas, void* ctx) {
2326
default:
2427
break;
2528
}
26-
release_mutex((ValueMutex*)ctx, i2ctools);
29+
furi_mutex_release(i2ctools->mutex);
2730
}
2831

2932
void i2ctools_input_callback(InputEvent* input_event, void* ctx) {
@@ -38,16 +41,11 @@ int32_t i2ctools_app(void* p) {
3841

3942
// Alloc i2ctools
4043
i2cTools* i2ctools = malloc(sizeof(i2cTools));
41-
ValueMutex i2ctools_mutex;
42-
if(!init_mutex(&i2ctools_mutex, i2ctools, sizeof(i2cTools))) {
43-
FURI_LOG_E(APP_NAME, "cannot create mutex\r\n");
44-
free(i2ctools);
45-
return -1;
46-
}
44+
i2ctools->mutex = furi_mutex_alloc(FuriMutexTypeNormal);
4745

4846
// Alloc viewport
4947
i2ctools->view_port = view_port_alloc();
50-
view_port_draw_callback_set(i2ctools->view_port, i2ctools_draw_callback, &i2ctools_mutex);
48+
view_port_draw_callback_set(i2ctools->view_port, i2ctools_draw_callback, i2ctools);
5149
view_port_input_callback_set(i2ctools->view_port, i2ctools_input_callback, event_queue);
5250

5351
// Register view port in GUI

i2ctools_i.h

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
// App datas
1515
typedef struct {
16+
FuriMutex* mutex;
1617
ViewPort* view_port;
1718
i2cMainView* main_view;
1819

0 commit comments

Comments
 (0)