diff --git a/src/applet.c b/src/applet.c
index 427062e..47f30c4 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -43,7 +43,7 @@
 	curr = LIST_NEXT(&applet_active_queue, typeof(curr), runq);
 	while (&curr->runq != &applet_active_queue) {
 		next = LIST_NEXT(&curr->runq, typeof(next), runq);
-		if (curr->process_mask & tid_bit) {
+		if (curr->thread_mask & tid_bit) {
 			LIST_DEL(&curr->runq);
 			curr->state = APPLET_RUNNING;
 			LIST_ADDQ(&applet_cur_queue, &curr->runq);
diff --git a/src/ev_epoll.c b/src/ev_epoll.c
index d26c3a2..65e5164 100644
--- a/src/ev_epoll.c
+++ b/src/ev_epoll.c
@@ -136,7 +136,7 @@
 		unsigned int e = epoll_events[count].events;
 		fd = epoll_events[count].data.fd;
 
-		if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
+		if (!fdtab[fd].owner || !(fdtab[fd].thread_mask & tid_bit))
 			continue;
 
 		/* it looks complicated but gcc can optimize it away when constants
diff --git a/src/ev_kqueue.c b/src/ev_kqueue.c
index 2ae2774..00dc965 100644
--- a/src/ev_kqueue.c
+++ b/src/ev_kqueue.c
@@ -122,7 +122,7 @@
 		unsigned int n = 0;
 		fd = kev[count].ident;
 
-		if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
+		if (!fdtab[fd].owner || !(fdtab[fd].thread_mask & tid_bit))
 			continue;
 
 		if (kev[count].filter ==  EVFILT_READ) {
diff --git a/src/ev_poll.c b/src/ev_poll.c
index f7632b6..edeffa8 100644
--- a/src/ev_poll.c
+++ b/src/ev_poll.c
@@ -112,7 +112,7 @@
 
 		for (count = 0, fd = fds * 8*sizeof(**fd_evts); count < 8*sizeof(**fd_evts) && fd < maxfd; count++, fd++) {
 
-			if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
+			if (!fdtab[fd].owner || !(fdtab[fd].thread_mask & tid_bit))
 				continue;
 
 			sr = (rn >> count) & 1;
diff --git a/src/ev_select.c b/src/ev_select.c
index 4f5a2d1..5dad408 100644
--- a/src/ev_select.c
+++ b/src/ev_select.c
@@ -141,7 +141,7 @@
 			/* if we specify read first, the accepts and zero reads will be
 			 * seen first. Moreover, system buffers will be flushed faster.
 			 */
-			if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
+			if (!fdtab[fd].owner || !(fdtab[fd].thread_mask & tid_bit))
 				continue;
 
 			if (FD_ISSET(fd, tmp_evts[DIR_RD]))
diff --git a/src/fd.c b/src/fd.c
index ea5d683..e8419aa 100644
--- a/src/fd.c
+++ b/src/fd.c
@@ -202,7 +202,7 @@
 	fdtab[fd].owner = NULL;
 	fdtab[fd].updated = 0;
 	fdtab[fd].new = 0;
-	fdtab[fd].process_mask = 0;
+	fdtab[fd].thread_mask = 0;
 	if (do_close)
 		close(fd);
 	SPIN_UNLOCK(FD_LOCK, &fdtab[fd].lock);
@@ -245,7 +245,7 @@
 	for (entry = 0; entry < fd_cache_num; ) {
 		fd = fd_cache[entry];
 
-		if (!(fdtab[fd].process_mask & tid_bit))
+		if (!(fdtab[fd].thread_mask & tid_bit))
 			goto next;
 		if (SPIN_TRYLOCK(FD_LOCK, &fdtab[fd].lock))
 			goto next;
diff --git a/src/task.c b/src/task.c
index 7623da9..1768e07 100644
--- a/src/task.c
+++ b/src/task.c
@@ -229,7 +229,7 @@
 		while (local_tasks_count < 16) {
 			t = eb32_entry(rq_next, struct task, rq);
 			rq_next = eb32_next(rq_next);
-			if (t->process_mask & tid_bit) {
+			if (t->thread_mask & tid_bit) {
 				/* detach the task from the queue */
 				__task_unlink_rq(t);
 				t->state |= TASK_RUNNING;
