C 等待事件超时的解释

C 等待事件超时的解释,c,linux,linux-kernel,C,Linux,Linux Kernel,我有一些linux内核源代码: #define wait_event_timeout(wq, condition, timeout) \ ({ \ long __ret = timeout; \ if (

我有一些linux内核源代码:

#define wait_event_timeout(wq, condition, timeout)                      \
({                                                                      \
        long __ret = timeout;                                           \
        if (!(condition))                                               \
                __wait_event_timeout(wq, condition, __ret);             \
        __ret;                                                          \
})
我不明白最后一个“ret”是做什么的


有人能解释一下吗?

这是一个C问题:
\uu ret
是该宏的返回值。它也写在