TT#156900 add helper functions and macros

Change-Id: I341632e4b6dbefd6743b9b1c4578c374c84505b2
pull/1439/head
Richard Fuchs 3 years ago
parent cf34ecc24c
commit 941a50edd5

@ -234,6 +234,11 @@ INLINE int proto_is(const struct transport_protocol *protocol, enum transport_pr
return 0;
return (protocol->index == idx) ? 1 : 0;
}
INLINE void stream_fd_auto_cleanup(struct stream_fd **sp) {
if (!*sp)
return;
obj_put(*sp);
}
#endif

@ -95,6 +95,10 @@ INLINE void __obj_put(struct obj *o);
#endif
INLINE void obj_put_ptr(void *p) {
obj_put_o(p);
}
#define obj_release(op) do { if (op) obj_put_o((struct obj *) op); op = NULL; } while (0)

@ -218,10 +218,22 @@ INLINE int __debug_rwlock_unlock_w(rwlock_t *m, const char *file, unsigned int l
INLINE void rtpe_auto_cleanup_mutex(mutex_t **m) {
mutex_unlock(*m);
}
INLINE void rtpe_auto_cleanup_rwlock_r(rwlock_t **m) {
rwlock_unlock_r(*m);
}
INLINE void rtpe_auto_cleanup_rwlock_w(rwlock_t **m) {
rwlock_unlock_w(*m);
}
#define LOCK(m) AUTO_CLEANUP(mutex_t *__auto_lock_## __COUNTER__, rtpe_auto_cleanup_mutex) \
__attribute__((unused)) = m; \
mutex_lock(m)
#define RWLOCK_R(m) AUTO_CLEANUP(rwlock_t *__auto_lock_## __COUNTER__, rtpe_auto_cleanup_rwlock_r) \
__attribute__((unused)) = m; \
rwlock_lock_r(m)
#define RWLOCK_W(m) AUTO_CLEANUP(rwlock_t *__auto_lock_## __COUNTER__, rtpe_auto_cleanup_rwlock_w) \
__attribute__((unused)) = m; \
rwlock_lock_w(m)

Loading…
Cancel
Save