nginx-0.0.3-2004-04-05-00:32:09 import
diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c
index 79a2e19..b66241b 100644
--- a/src/event/ngx_event_timer.c
+++ b/src/event/ngx_event_timer.c
@@ -42,18 +42,14 @@
         return 0;
     }
 
-#if (NGX_THREADS)
     if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) {
         return NGX_TIMER_ERROR;
     }
-#endif
 
     node = ngx_rbtree_min((ngx_rbtree_t *) ngx_event_timer_rbtree,
                           &ngx_event_timer_sentinel);
 
-#if (NGX_THREADS)
     ngx_mutex_unlock(ngx_event_timer_mutex);
-#endif
 
     return (ngx_msec_t)
          (node->key * NGX_TIMER_RESOLUTION -
@@ -75,18 +71,14 @@
             break;
         }
 
-#if (NGX_THREADS)
         if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) {
             return;
         }
-#endif
 
         node = ngx_rbtree_min((ngx_rbtree_t *) ngx_event_timer_rbtree,
                               &ngx_event_timer_sentinel);
 
-#if (NGX_THREADS)
         ngx_mutex_unlock(ngx_event_timer_mutex);
-#endif
 
         if ((ngx_msec_t) node->key <= (ngx_msec_t)
                          (ngx_old_elapsed_msec + timer) / NGX_TIMER_RESOLUTION)
@@ -106,9 +98,16 @@
                 ev->timedout = 1;
             }
 
-#if (NGX_THREADS)
-            /* STUB: post event */
-#endif
+            if (ngx_threaded) {
+                if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
+                    return;
+                }
+
+                ngx_post_event(ev);
+
+                ngx_mutex_unlock(ngx_posted_events_mutex);
+                continue;
+            }
 
             ev->event_handler(ev);
             continue;