Changeset: 06a701be7a92 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=06a701be7a92
Modified Files:
        monetdb5/extras/rapi/rapi.c
Branch: RIntegration
Log Message:

R interpreter now loaded at startup, also prints message if successful


diffs (48 lines):

diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c
--- a/monetdb5/extras/rapi/rapi.c
+++ b/monetdb5/extras/rapi/rapi.c
@@ -262,7 +262,6 @@ str RAPIeval(Client cntxt, MalBlkPtr mb,
        char *msg = createException(MAL, "rapi.eval", "NYI");
        BAT *b;
        BUN cnt;
-       int initstatus = 0;
        node * argnode;
        int seengrp = FALSE;
 
@@ -288,14 +287,6 @@ str RAPIeval(Client cntxt, MalBlkPtr mb,
 
        // get the lock even before initialization of the R interpreter, as 
this can take a second and must be done only once.
        MT_lock_set(&rapiLock, "rapi.evaluate");
-       /* startup internal R environment if needed */
-       if (!rapiInitialized) {
-               initstatus = RAPIinitialize();
-               if (initstatus != 0) {
-                       throw(MAL, "rapi.eval", "failed to initialise R 
environment (%i)",
-                                       initstatus);
-               }
-       }
 
        env = PROTECT(eval(lang1(install("new.env")),R_GlobalEnv));
        assert(env != NULL);
@@ -584,5 +575,21 @@ str RAPIprelude(void) {
        MT_lock_init(&rapiLock, "rapi_lock");
        // set R_HOME for packages etc. We know this from our configure script
        setenv("R_HOME", RHOME, TRUE);
+
+       if (RAPIEnabled()) {
+               MT_lock_set(&rapiLock, "rapi.evaluate");
+               /* startup internal R environment  */
+               if (!rapiInitialized) {
+                       int initstatus;
+                       initstatus = RAPIinitialize();
+                       if (initstatus != 0) {
+                               throw(MAL, "rapi.eval",
+                                               "failed to initialise R 
environment (%i)", initstatus);
+                       }
+               }
+               MT_lock_unset(&rapiLock, "rapi.evaluate");
+       }
+
+       fprintf(stdout, "# MonetDB/R   module loaded\n");
        return MAL_SUCCEED;
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to