summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
32518ea)
Change-Id: I9492288de61b79074db38818c459f7447b12b4e6
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
pthread_mutex_t mutex; /**< resource control */
union {
struct {
pthread_mutex_t mutex; /**< resource control */
union {
struct {
struct afb_ws *ws;
struct api_ws_event *events;
struct api_ws_memo *memos;
struct afb_ws *ws;
struct api_ws_event *events;
struct api_ws_memo *memos;
#define RETERR 2
#define RETRAW 3
#define RETERR 2
#define RETRAW 3
+/******************* common usefull tools **********************************/
+
+/**
+ * translate a pointer to some integer
+ * @param ptr the pointer to translate
+ * @return an integer
+ */
+static inline uint32_t ptr2id(void *ptr)
+{
+ return (uint32_t)(((intptr_t)ptr) >> 6);
+}
+
/******************* websocket interface for client part **********************************/
static void api_ws_client_on_binary(void *closure, char *data, size_t size);
/******************* websocket interface for client part **********************************/
static void api_ws_client_on_binary(void *closure, char *data, size_t size);
if (memo != NULL) {
afb_xreq_addref(xreq);
memo->xreq = xreq;
if (memo != NULL) {
afb_xreq_addref(xreq);
memo->xreq = xreq;
- do { memo->msgid = ++api->client.id; } while(api_ws_client_memo_search(api, memo->msgid) != NULL);
+ memo->msgid = ptr2id(memo);
+ while(api_ws_client_memo_search(api, memo->msgid) != NULL)
+ memo->msgid++;
memo->api = api;
memo->next = api->client.memos;
api->client.memos = memo;
memo->api = api;
memo->next = api->client.memos;
api->client.memos = memo;
sc->closure = cb_closure;
pthread_mutex_unlock(&client->mutex);
sc->closure = cb_closure;
pthread_mutex_unlock(&client->mutex);
- sc->subcallid = (uint32_t)(((intptr_t)sc) >> 6);
+ sc->subcallid = ptr2id(sc);
do {
sc->subcallid++;
osc = client->subcalls;
do {
sc->subcallid++;
osc = client->subcalls;