diff --git a/userspace/libwr/shmem.c b/userspace/libwr/shmem.c
index 4e84960b6bacb24a5a525e8cf198c52539265038..7acaac151ae090691331a6ef8a4f9308285093b5 100644
--- a/userspace/libwr/shmem.c
+++ b/userspace/libwr/shmem.c
@@ -11,7 +11,7 @@
 #include <sys/mman.h>
 
 #include <libwr/shmem.h>
-#define SHM_LOCK_TIMEOUT 2
+#define SHM_LOCK_TIMEOUT_MS 50 /* in ms */
 /* Get wrs shared memory */
 /* return NULL and set errno on error */
 void *wrs_shm_get(enum wrs_shm_name name_id, char *name, unsigned long flags)
@@ -64,7 +64,9 @@ void *wrs_shm_get(enum wrs_shm_name name_id, char *name, unsigned long flags)
 
 			usleep(10 * 1000);
 			clock_gettime(CLOCK_MONOTONIC, &tv2);
-			if (tv2.tv_sec - tv1.tv_sec < SHM_LOCK_TIMEOUT)
+			if ((tv2.tv_sec*1000 + tv2.tv_nsec/1000000)
+			    - (tv1.tv_sec*1000 + tv1.tv_nsec/1000000)
+			    < SHM_LOCK_TIMEOUT_MS)
 				continue;
 
 			errno = ETIMEDOUT;