LMMS
Loading...
Searching...
No Matches
eel_atomic.h
Go to the documentation of this file.
1#ifndef __EEL_ATOMIC_H__
2#define __EEL_ATOMIC_H__
3
4// requires these to be defined
5//#define EEL_ATOMIC_SET_SCOPE(opaque) WDL_Mutex *mutex = (opaque?&((effectProcessor *)opaque)->m_atomic_mutex:&atomic_mutex);
6//#define EEL_ATOMIC_ENTER mutex->Enter()
7//#define EEL_ATOMIC_LEAVE mutex->Leave()
8
9static EEL_F NSEEL_CGEN_CALL atomic_setifeq(void *opaque, EEL_F *a, EEL_F *cmp, EEL_F *nd)
10{
11 EEL_F ret;
14 ret = *a;
15 if (fabs(ret - *cmp) < NSEEL_CLOSEFACTOR) *a = *nd;
17 return ret;
18}
19
20static EEL_F NSEEL_CGEN_CALL atomic_exch(void *opaque, EEL_F *a, EEL_F *b)
21{
22 EEL_F tmp;
25 tmp = *b;
26 *b = *a;
27 *a = tmp;
29 return tmp;
30}
31
32static EEL_F NSEEL_CGEN_CALL atomic_add(void *opaque, EEL_F *a, EEL_F *b)
33{
34 EEL_F tmp;
37 tmp = (*a += *b);
39 return tmp;
40}
41
42static EEL_F NSEEL_CGEN_CALL atomic_set(void *opaque, EEL_F *a, EEL_F *b)
43{
44 EEL_F tmp;
47 tmp = *a = *b;
49 return tmp;
50}
51
52static EEL_F NSEEL_CGEN_CALL atomic_get(void *opaque, EEL_F *a)
53{
54 EEL_F tmp;
57 tmp = *a;
59 return tmp;
60}
61
70
71#endif
uint8_t a
Definition Spc_Cpu.h:141
static void EEL_atomic_register()
Definition eel_atomic.h:62
static EEL_F NSEEL_CGEN_CALL atomic_set(void *opaque, EEL_F *a, EEL_F *b)
Definition eel_atomic.h:42
static EEL_F NSEEL_CGEN_CALL atomic_exch(void *opaque, EEL_F *a, EEL_F *b)
Definition eel_atomic.h:20
static EEL_F NSEEL_CGEN_CALL atomic_setifeq(void *opaque, EEL_F *a, EEL_F *cmp, EEL_F *nd)
Definition eel_atomic.h:9
static EEL_F NSEEL_CGEN_CALL atomic_add(void *opaque, EEL_F *a, EEL_F *b)
Definition eel_atomic.h:32
static EEL_F NSEEL_CGEN_CALL atomic_get(void *opaque, EEL_F *a)
Definition eel_atomic.h:52
#define NSEEL_addfunc_retval(name, np, pproc, fptr)
Definition eel_import.h:51
void *(* NSEEL_PProc_THIS)(void *data, int data_size, struct _compileContext *ctx)
Definition eel_import.h:40
#define opaque
Definition eelscript.h:281
#define NSEEL_CLOSEFACTOR
Definition ns-eel-int.h:101
#define NSEEL_CGEN_CALL
Definition ns-eel.h:44
b
Definition crypt.c:628
#define EEL_ATOMIC_LEAVE
Definition ysfx_api_eel.cpp:40
#define EEL_ATOMIC_SET_SCOPE(opaque)
Definition ysfx_api_eel.cpp:38
#define EEL_ATOMIC_ENTER
Definition ysfx_api_eel.cpp:39