]> Kevux Git Server - fll/commitdiff
Update: f_thread_lock_read_timed() should return F_resource_not.
authorKevin Day <thekevinday@gmail.com>
Wed, 14 Apr 2021 22:41:18 +0000 (17:41 -0500)
committerKevin Day <thekevinday@gmail.com>
Wed, 14 Apr 2021 22:41:18 +0000 (17:41 -0500)
The pthread_rwlock_timedrdlock() potentially returns EAGAIN.
This needs to be handled, translated into F_resource_not (with error bit), and then returned.

level_0/f_thread/c/thread.c
level_0/f_thread/c/thread.h

index 5f8c9c12c61ecc6ce65fca1268b160cf31be7c29..1393298690d56575de06930621279793f7d5f6df 100644 (file)
@@ -1788,6 +1788,7 @@ extern "C" {
     const int error = pthread_rwlock_timedrdlock(lock, timeout);
 
     if (error) {
+      if (error == EAGAIN) return F_status_set_error(F_resource_not);
       if (error == EDEADLK) return F_status_set_error(F_deadlock);
       if (error == EINVAL) return F_status_set_error(F_parameter);
       if (error == ETIMEDOUT) return F_time;
index b8acf2019c350b9d8f1bfae6129dddc0bf66dd0b..046888253aced3abab317acfe7a19c3853530db5 100644 (file)
@@ -2426,6 +2426,7 @@ extern "C" {
  *
  *   F_deadlock (with error bit) if operation would cause a deadlock.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *   F_resource_not (with error bit) if max number of read locks allowed is reached.
  *
  *   F_failure (with error bit) on any other error.
  *