Browse code

avoid importing mcparallel, mccollect, which are only exported on unix

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/Streamer@68749 bc3139a8-67e5-0310-9ffc-ced21a209358

Martin Morgan authored on 23/08/2012 23:11:24
Showing 6 changed files

... ...
@@ -4,7 +4,8 @@ import(methods)
4 4
 
5 5
 importFrom(BiocGenerics, lapply, sapply)
6 6
 
7
-importFrom(parallel, mcparallel, mccollect)
7
+## only exported on unix
8
+## importFrom(parallel, mccollect, mcparallel)
8 9
 
9 10
 importFrom(graph, graphBAM)
10 11
 
... ...
@@ -23,7 +23,7 @@
23 23
         x$inputPipe <- y
24 24
         y$inUse <- TRUE
25 25
         if (is(x, "ParallelConnector")) {
26
-            x$.upstream <- mcparallel(quote({
26
+            x$.upstream <- .mc_parallel(quote({
27 27
                 while(TRUE) {
28 28
                     prime <- yield(y)
29 29
                     sendMaster(prime)
... ...
@@ -6,7 +6,7 @@
6 6
     results <- vector("list", length(jobs))
7 7
     t0 <- as.numeric(Sys.time(), units="secs") + timeout
8 8
     for (i in seq_along(jobs)) {
9
-        result <- mccollect(jobs[[i]], wait, timeout, intermediate)
9
+        result <- .mc_collect(jobs[[i]], wait, timeout, intermediate)
10 10
         if (is.null(result))
11 11
             results[i] <- list(NULL)
12 12
         else results[[i]] <- result[[1]]
... ...
@@ -60,7 +60,7 @@
60 60
               task[c("name", "result", "status")] <-
61 61
                   list(.id, value, "ERROR")
62 62
           } else {
63
-              task <- mcparallel(FUN(value), .id, mc.set.seed, silent)
63
+              task <- .mc_parallel(FUN(value), .id, mc.set.seed, silent)
64 64
               task$status <- "YIELD"
65 65
           }
66 66
           .self$tasks[[idx]] <- task
... ...
@@ -80,7 +80,7 @@
80 80
           results <- results[idx]
81 81
           nms <- base::names(results)
82 82
           tids <- match(nms, names())
83
-          parallel:::mckill(tasks[tids], 15)
83
+          .mc_kill(tasks[tids], 15)
84 84
           for (i in seq_along(nms)) {
85 85
               tid <- tids[i]
86 86
               task <- tasks[[tid]]
... ...
@@ -70,10 +70,10 @@ connect <-
70 70
         }
71 71
         
72 72
         if (is(right, "ParallelConnector")) {
73
-            right$.upstream <- mcparallel(quote({
73
+            right$.upstream <- .mc_parallel(quote({
74 74
                 while(TRUE) {
75 75
                     prime <- yield(left)
76
-                    parallel:::sendMaster(prime)
76
+                    .mc_sendMaster(prime)
77 77
                 }}))
78 78
 
79 79
         }
... ...
@@ -1,3 +1,18 @@
1
+.mc_parallel <- .mc_collect <- .mc_sendMaster <- .mc_kill <- NULL
2
+
3
+.onLoad <-
4
+    function(libname, pkgname)
5
+{
6
+    if (tools:::.OStype() == "unix") {
7
+        ## conditional export in Windows
8
+        .mc_parallel <<- parallel::mcparallel
9
+        .mc_collect <<- parallel::mccollect
10
+        ## non-exported
11
+        .mc_kill <<- parallel:::mckill
12
+        .mc_sendMaster <<- parallel:::sendMaster
13
+    }
14
+}
15
+
1 16
 .ppath <-
2 17
     function(tag, filepath)
3 18
 {
... ...
@@ -38,7 +38,6 @@
38 38
   \item{USE.NAMES}{See \code{?base::sapply} but note that names do not
39 39
     usually make sense for instances of class \code{Producer}.}
40 40
 
41
-  \item{.env}{For internal use}
42 41
 }
43 42
 
44 43
 \section{Methods}{