[Midnightbsd-cvs] src [7378] trunk/libexec/mport.create: wrap in a group

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Nov 28 21:59:07 EST 2015


Revision: 7378
          http://svnweb.midnightbsd.org/src/?rev=7378
Author:   laffer1
Date:     2015-11-28 21:59:07 -0500 (Sat, 28 Nov 2015)
Log Message:
-----------
wrap in a group

Modified Paths:
--------------
    trunk/libexec/mport.create/Makefile
    trunk/libexec/mport.create/mport.create.c

Modified: trunk/libexec/mport.create/Makefile
===================================================================
--- trunk/libexec/mport.create/Makefile	2015-11-29 02:58:17 UTC (rev 7377)
+++ trunk/libexec/mport.create/Makefile	2015-11-29 02:59:07 UTC (rev 7378)
@@ -1,11 +1,11 @@
 PROG= mport.create
 
-CFLAGS+=	-g -I${.CURDIR}/../../lib/libmport/
+CFLAGS+=	-fblocks -I${.CURDIR}/../../lib/libmport/
 WARNS?= 	6
 
 NO_MAN=		yes
 
-LDADD= 	-lmport
-DPADD= 	${LIBMPORT} 
+LDADD= 	-lmport -ldispatch -lBlocksRuntime
+DPADD= 	${LIBMPORT} ${LIBDISPATCH} ${LIBBLOCKSRUNTIME}
 
 .include <bsd.prog.mk>

Modified: trunk/libexec/mport.create/mport.create.c
===================================================================
--- trunk/libexec/mport.create/mport.create.c	2015-11-29 02:58:17 UTC (rev 7377)
+++ trunk/libexec/mport.create/mport.create.c	2015-11-29 02:59:07 UTC (rev 7378)
@@ -48,6 +48,9 @@
 {
   int ch;
   int plist_seen = 0;
+  dispatch_queue_t mainq = dispatch_get_main_queue();
+  dispatch_group_t grp = dispatch_group_create();
+  dispatch_queue_t q = dispatch_queue_create("print", NULL);
   mportPackageMeta *pack    = mport_pkgmeta_new();
   mportCreateExtras *extra  = mport_createextras_new();
   mportAssetList *assetlist = mport_assetlist_new();
@@ -126,6 +129,7 @@
     }
   } 
 
+dispatch_group_async(grp, q, ^{
   check_for_required_args(pack, extra);
   if (plist_seen == 0) {
     warnx("Required arg missing: plist");
@@ -134,10 +138,16 @@
 
   if (mport_create_primative(assetlist, pack, extra) != MPORT_OK) {
     warnx("%s", mport_err_string());
-    return 1;
+    exit(1);
   }
-  
-  return 0;
+});
+
+     dispatch_group_wait(grp, DISPATCH_TIME_FOREVER);
+        dispatch_async(mainq, ^{
+                exit(0);
+        });
+
+        dispatch_main();
 }
 
 



More information about the Midnightbsd-cvs mailing list