rev 739 - in trunk/modules: DBM OS
SVN User <[email protected]> Thu, 15 Jul 2004 04:11:55 -0400
| Newsgroups | gmane.comp.lang.prothon.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: mark
Date: 2004-07-15 04:11:39 -0400 (Thu, 15 Jul 2004)
New Revision: 739
Modified:
trunk/modules/DBM/DBM.c
trunk/modules/OS/OS.c
trunk/modules/OS/OS.vcproj
Log:
basic Process tested and working, pipes not tested
Modified: trunk/modules/DBM/DBM.c
===================================================================
--- trunk/modules/DBM/DBM.c 2004-07-15 06:25:30 UTC (rev 738)
+++ trunk/modules/DBM/DBM.c 2004-07-15 08:11:39 UTC (rev 739)
@@ -54,7 +54,6 @@
#include <prothon/prothon_dll.h>
-#include <apr_strings.h>
#include <apr_dbm.h>
typedef apr_dbm_t* apr_dbm_p;
Modified: trunk/modules/OS/OS.c
===================================================================
--- trunk/modules/OS/OS.c 2004-07-15 06:25:30 UTC (rev 738)
+++ trunk/modules/OS/OS.c 2004-07-15 08:11:39 UTC (rev 739)
@@ -52,11 +52,9 @@
// os.c - os routines
+#include <prothon/prothon_dll.h>
#include <stdlib.h>
-#include <prothon/prothon_dll.h>
-// note: to build this in windows, define NO_APR
-
MODULE_DECLARE(os);
MODULE_DECLARE(Process);
@@ -76,7 +74,10 @@
MODULE_CONSTANT_DECLARE(os, SHELLCMD );
MODULE_CONSTANT_DECLARE(os, COPYENV );
MODULE_CONSTANT_DECLARE(os, COPYENVPATH );
-MODULE_CONSTANT_DECLARE(os, DAEMON );
+MODULE_CONSTANT_DECLARE(os, DAEMON );
+MODULE_CONSTANT_DECLARE(os, EXIT );
+MODULE_CONSTANT_DECLARE(os, SIGNAL );
+MODULE_CONSTANT_DECLARE(os, SIGNAL_CORE );
MODULE_START(os)
{
@@ -97,6 +98,10 @@
MODULE_CONSTANT_INT(os, COPYENV , PROC_COPYENV );
MODULE_CONSTANT_INT(os, COPYENVPATH , PROC_COPYENVPATH );
MODULE_CONSTANT_INT(os, DAEMON , PROC_DAEMON );
+
+ MODULE_CONSTANT_INT(os, EXIT , APR_PROC_EXIT );
+ MODULE_CONSTANT_INT(os, SIGNAL , APR_PROC_SIGNAL );
+ MODULE_CONSTANT_INT(os, SIGNAL_CORE , APR_PROC_SIGNAL_CORE);
}
//**************************** os *******************************************
@@ -132,7 +137,7 @@
char* dir;
int i, arg_len, env_len, flags;
int stdin_flg=APR_NO_PIPE, stdout_flg=APR_NO_PIPE, stderr_flg=APR_NO_PIPE;
- apr_cmdtype_e cmd_type = 0;
+ apr_cmdtype_e cmd_type = -1;
proc_p procp;
char *argv_arr[MAX_ARGV_ARGS], *env_arr[MAX_ENV_VARS];
@@ -184,7 +189,8 @@
env_arr[i] = pr2c_strptr(ist, str_obj);
}
env_arr[i] = NULL;
- }
+ } else
+ env_arr[0] = NULL;
aprerr = apr_pool_create(&pool, get_pr_head_pool());
IF_APR_ERR("out of memory in Process init_") return NULL;
@@ -201,7 +207,7 @@
aprerr = apr_procattr_dir_set(attr, dir);
IF_APR_ERR("error in apr_procattr_dir_set") return NULL;
}
- if (cmd_type) {
+ if (cmd_type != -1) {
aprerr = apr_procattr_cmdtype_set(attr, cmd_type);
IF_APR_ERR("error in apr_procattr_cmdtype_set") return NULL;
}
@@ -216,8 +222,10 @@
aprerr = apr_proc_create(&procp->proc, argv_arr[0], argv_arr, env_arr, attr, pool);
IF_APR_ERR("error in apr_proc_create") return NULL;
+ read_unlock(ist, self);
set_attr(ist, self, SYM(NAME_), NEW_STRING(argv_arr[0]));
set_attr(ist, self, sym(ist, "pid"), NEW_INT(procp->proc.pid));
+ read_lock(ist, self);
if (flags & PROC_STDIN) {
obj_p file_obj = NEW_OBJ(OBJ(TEXTFILE_PROTO));
@@ -226,7 +234,9 @@
procp->proc.in, 0, APR_WRITE );
set_attr(ist, file_obj, sym(ist, "encoding"), NEW_STRING("ASCII"));
file_obj->unclonable = TRUE;
+ read_unlock(ist, self);
set_attr(ist, self, sym(ist, "stdInPipe"), file_obj);
+ read_lock(ist, self);
}
if (flags & PROC_STDOUT) {
obj_p file_obj = NEW_OBJ(OBJ(TEXTFILE_PROTO));
@@ -235,7 +245,9 @@
procp->proc.out, 0, APR_READ );
set_attr(ist, file_obj, sym(ist, "encoding"), NEW_STRING("ASCII"));
file_obj->unclonable = TRUE;
+ read_unlock(ist, self);
set_attr(ist, self, sym(ist, "stdOutPipe"), file_obj);
+ read_lock(ist, self);
}
if (flags & PROC_STDERR) {
obj_p file_obj = NEW_OBJ(OBJ(TEXTFILE_PROTO));
@@ -244,7 +256,9 @@
procp->proc.err, 0, APR_READ );
set_attr(ist, file_obj, sym(ist, "encoding"), NEW_STRING("ASCII"));
file_obj->unclonable = TRUE;
+ read_unlock(ist, self);
set_attr(ist, self, sym(ist, "stdErrPipe"), file_obj);
+ read_lock(ist, self);
}
return OBJ(NONE);
}
Modified: trunk/modules/OS/OS.vcproj
===================================================================
--- trunk/modules/OS/OS.vcproj 2004-07-15 06:25:30 UTC (rev 738)
+++ trunk/modules/OS/OS.vcproj 2004-07-15 08:11:39 UTC (rev 739)
@@ -19,8 +19,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\include;..\..\apr\apr\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OS_EXPORTS"
+ AdditionalIncludeDirectories="..\..\include;..\..\apr\apr\include;..\..\apr\apr-util\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OS_EXPORTS;APR_DECLARE_STATIC;APU_DECLARE_STATIC"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -33,11 +33,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="apr.lib wsock32.lib"
+ AdditionalDependencies="apr.lib aprutil.lib wsock32.lib"
OutputFile="$(OutDir)/OS.dll"
LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\apr\apr\LibR"
- IgnoreDefaultLibraryNames=""
+ AdditionalLibraryDirectories="..\..\apr\apr\LibR;..\..\apr\apr-util\LibR"
+ IgnoreDefaultLibraryNames="LIBCMTD.LIB"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/OS.pdb"
SubSystem="2"
@@ -72,8 +72,8 @@
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..\include;..\..\apr\apr\include"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OS_EXPORTS"
+ AdditionalIncludeDirectories="..\..\include;..\..\apr\apr\include;..\..\apr\apr-util\include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OS_EXPORTS;APR_DECLARE_STATIC;APU_DECLARE_STATIC"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
@@ -84,11 +84,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="apr.lib wsock32.lib"
+ AdditionalDependencies="apr.lib aprutil.lib wsock32.lib"
OutputFile="$(OutDir)/OS.dll"
LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\apr\apr\LibR"
- IgnoreDefaultLibraryNames=""
+ AdditionalLibraryDirectories="..\..\apr\apr\LibR;..\..\apr\apr-util\LibR"
+ IgnoreDefaultLibraryNames="LIBCMTD.LIB"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"