The process type enum exposed to go module.

This commit is contained in:
Max Romanov
2017-08-29 14:18:00 -07:00
parent 6de7cc8634
commit 92f3b85298
6 changed files with 29 additions and 15 deletions

View File

@@ -56,7 +56,7 @@ $echo "configuring Go package ..." >> $NXT_AUTOCONF_ERR
$echo -n "checking for Go ..." $echo -n "checking for Go ..."
$echo "checking for Go ..." >> $NXT_AUTOCONF_ERR $echo "checking for Go ..." >> $NXT_AUTOCONF_ERR
nxt_go_test="GOPATH=`pwd` CGO_CPPFLAGS=-DNXT_CONFIGURE \ nxt_go_test="GOPATH=`pwd` CGO_CPPFLAGS='-DNXT_CONFIGURE -I`pwd`/src'\
\"${NXT_GO}\" build -o build/nxt_go_gen.a --buildmode=c-archive nginext" \"${NXT_GO}\" build -o build/nxt_go_gen.a --buildmode=c-archive nginext"

View File

@@ -15,6 +15,7 @@ NXT_LIB_DEPS=" \
src/nxt_file.h \ src/nxt_file.h \
src/nxt_mem_map.h \ src/nxt_mem_map.h \
src/nxt_socket.h \ src/nxt_socket.h \
src/nxt_process_type.h \
src/nxt_process.h \ src/nxt_process.h \
src/nxt_signal.h \ src/nxt_signal.h \
src/nxt_port.h \ src/nxt_port.h \

View File

@@ -7,6 +7,7 @@ package nginext
/* /*
#include "nxt_go_lib.h" #include "nxt_go_lib.h"
#include "nxt_process_type.h"
*/ */
import "C" import "C"
@@ -33,7 +34,7 @@ type port struct {
type port_registry struct { type port_registry struct {
sync.RWMutex sync.RWMutex
m map[port_key]*port m map[port_key]*port
t [5]*port t [C.NXT_PROCESS_MAX]*port
} }
var port_registry_ port_registry var port_registry_ port_registry
@@ -65,7 +66,7 @@ func remove_by_pid(pid int) {
func main_port() *port { func main_port() *port {
port_registry_.RLock() port_registry_.RLock()
res := port_registry_.t[1] res := port_registry_.t[C.NXT_PROCESS_MAIN]
port_registry_.RUnlock() port_registry_.RUnlock()
return res return res

View File

@@ -56,6 +56,7 @@ typedef uint16_t nxt_port_id_t;
#include <nxt_timer.h> #include <nxt_timer.h>
#include <nxt_fiber.h> #include <nxt_fiber.h>
#include <nxt_thread.h> #include <nxt_thread.h>
#include <nxt_process_type.h>
#include <nxt_process.h> #include <nxt_process.h>
#include <nxt_utf8.h> #include <nxt_utf8.h>
#include <nxt_file_name.h> #include <nxt_file_name.h>

View File

@@ -8,18 +8,6 @@
#define _NXT_PROCESS_H_INCLUDED_ #define _NXT_PROCESS_H_INCLUDED_
typedef enum {
NXT_PROCESS_SINGLE = 0,
NXT_PROCESS_MAIN,
NXT_PROCESS_CONTROLLER,
NXT_PROCESS_ROUTER,
NXT_PROCESS_WORKER,
NXT_PROCESS_DISCOVERY,
NXT_PROCESS_MAX,
} nxt_process_type_t;
typedef pid_t nxt_pid_t; typedef pid_t nxt_pid_t;
typedef uid_t nxt_uid_t; typedef uid_t nxt_uid_t;
typedef gid_t nxt_gid_t; typedef gid_t nxt_gid_t;

23
src/nxt_process_type.h Normal file
View File

@@ -0,0 +1,23 @@
/*
* Copyright (C) Igor Sysoev
* Copyright (C) NGINX, Inc.
*/
#ifndef _NXT_PROCESS_TYPE_H_INCLUDED_
#define _NXT_PROCESS_TYPE_H_INCLUDED_
typedef enum {
NXT_PROCESS_SINGLE = 0,
NXT_PROCESS_MAIN,
NXT_PROCESS_DISCOVERY,
NXT_PROCESS_CONTROLLER,
NXT_PROCESS_ROUTER,
NXT_PROCESS_WORKER,
NXT_PROCESS_MAX,
} nxt_process_type_t;
#endif /* _NXT_PROCESS_TYPE_H_INCLUDED_ */