vlog: Remove support for worker process.
authorBen Pfaff <blp@nicira.com>
Fri, 12 Jul 2013 00:10:11 +0000 (17:10 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 12 Jul 2013 00:10:11 +0000 (17:10 -0700)
The worker process implementation isn't thread-safe and, once OVS
itself is threaded, it doesn't make much sense to have a worker
process anyway.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ed Maste <emaste@freebsd.org>
lib/vlog.c

index f87f48f..a880e07 100644 (file)
@@ -37,7 +37,6 @@
 #include "timeval.h"
 #include "unixctl.h"
 #include "util.h"
-#include "worker.h"
 
 VLOG_DEFINE_THIS_MODULE(vlog);
 
@@ -104,8 +103,6 @@ static void format_log_message(const struct vlog_module *, enum vlog_level,
                                enum vlog_facility, unsigned int msg_num,
                                const char *message, va_list, struct ds *)
     PRINTF_FORMAT(5, 0);
-static void vlog_write_file(struct ds *);
-static void vlog_update_async_log_fd(void);
 
 /* Searches the 'n_names' in 'names'.  Returns the index of a match for
  * 'target', or 'n_names' if no name matches. */
@@ -310,9 +307,6 @@ vlog_set_log_file(const char *file_name)
     /* Open new log file and update min_levels[] to reflect whether we actually
      * have a log_file. */
     log_fd = open(log_file_name, O_WRONLY | O_CREAT | O_APPEND, 0666);
-    if (log_fd >= 0) {
-        vlog_update_async_log_fd();
-    }
     for (mp = vlog_modules; mp < &vlog_modules[n_vlog_modules]; mp++) {
         update_min_level(*mp);
     }
@@ -809,7 +803,7 @@ vlog_valist(const struct vlog_module *module, enum vlog_level level,
             format_log_message(module, level, VLF_FILE, msg_num,
                                message, args, &s);
             ds_put_char(&s, '\n');
-            vlog_write_file(&s);
+            ignore(write(log_fd, s.string, s.length));
         }
 
         ds_destroy(&s);
@@ -958,59 +952,3 @@ vlog_usage(void)
            "                          (default: %s/%s.log)\n",
            ovs_logdir(), program_name);
 }
-\f
-static bool vlog_async_inited = false;
-
-static worker_request_func vlog_async_write_request_cb;
-
-static void
-vlog_write_file(struct ds *s)
-{
-    if (worker_is_running()) {
-        static bool in_worker_request = false;
-        if (!in_worker_request) {
-            in_worker_request = true;
-
-            worker_request(s->string, s->length,
-                           &log_fd, vlog_async_inited ? 0 : 1,
-                           vlog_async_write_request_cb, NULL, NULL);
-            vlog_async_inited = true;
-
-            in_worker_request = false;
-            return;
-        } else {
-            /* We've been entered recursively.  This can happen if
-             * worker_request(), or a function that it calls, tries to log
-             * something.  We can't call worker_request() recursively, so fall
-             * back to writing the log file directly. */
-            COVERAGE_INC(vlog_recursive);
-        }
-    }
-    ignore(write(log_fd, s->string, s->length));
-}
-
-static void
-vlog_update_async_log_fd(void)
-{
-    if (worker_is_running()) {
-        worker_request(NULL, 0, &log_fd, 1, vlog_async_write_request_cb,
-                       NULL, NULL);
-        vlog_async_inited = true;
-    }
-}
-
-static void
-vlog_async_write_request_cb(struct ofpbuf *request,
-                            const int *fd, size_t n_fds)
-{
-    if (n_fds > 0) {
-        if (log_fd >= 0) {
-            close(log_fd);
-        }
-        log_fd = *fd;
-    }
-
-    if (request->size > 0) {
-        ignore(write(log_fd, request->data, request->size));
-    }
-}