def doImageMod_Parallel(menuitem, image, **params): # For the rear-end processes global _rank if _rank == 0: return # image is the image name, actually imagecontext = oofimage.imageContexts[image] imagecontext.reserve() try: immidge = imagecontext.getObject() # OOFImage object newimmidge = immidge.clone(immidge.name()) registration = menuitem.data imageModifier = registration(**params) # create ImageModifier obj imagecontext.begin_writing() try: imageModifier(newimmidge) # call its __call__ method on the image oofimage.pushModification(image, newimmidge) finally: imagecontext.end_writing() finally: imagecontext.cancel_reservation()
def doImageMod(menuitem, image, **params): if parallel_enable.enabled(): from ooflib.image.IO import oofimageIPC paramenu = oofimageIPC.modmenu.getItem(menuitem.name) paramenu(image=image, **params) # image is the image name, actually imagectxt = imagecontext.imageContexts[image] imagectxt.reserve() try: immidge = imagectxt.getObject() # OOFImage object newimmidge = immidge.clone(immidge.name()) registration = menuitem.data imageModifier = registration(**params) # create ImageModifier obj imagectxt.begin_writing() try: imageModifier(newimmidge) # call its __call__ method on the image oofimage.pushModification(image, newimmidge) finally: imagectxt.end_writing() finally: imagectxt.cancel_reservation() switchboard.notify('modified image', imageModifier, image) switchboard.notify('redraw')