diff --git a/net/utils/net_bufpool.c b/net/utils/net_bufpool.c index 70f0fba2094..89f4f9d3515 100644 --- a/net/utils/net_bufpool.c +++ b/net/utils/net_bufpool.c @@ -107,7 +107,15 @@ FAR void *net_bufpool_timedalloc(FAR struct net_bufpool_s *pool, DEBUGASSERT(pool->nodesize > 0); } - ret = net_sem_timedwait_uninterruptible(&pool->sem, timeout); + if (timeout == 0) + { + ret = nxsem_trywait(&pool->sem); + } + else + { + ret = net_sem_timedwait_uninterruptible(&pool->sem, timeout); + } + if (ret != OK) { return NULL;