public static boolean lockSemaphore(String name) { boolean isLocked = semaphores.contains(name); //...already locked? if (!isLocked) { isLocked = createSemaphore(name); if (isLocked) semaphores.add(name); } return isLocked; }
public static boolean unlockSemaphore(String name) { boolean isOk = false; if (semaphores.contains(name)) { isOk = deleteSemaphore(name); if (isOk) semaphores.remove(name); } return isOk; }
private void doActionOnSemaphore(String action, String name, Parse infoCells) { boolean isOk = false; if ("lock".equals(action)) { isOk = lockSemaphore(name); if (!isOk) setForcedAbort(true); } else if ("unlock".equals(action)) isOk = unlockSemaphore(name); else exception(infoCells.parts, new Throwable("Bad action: " + action)); if (isOk) { infoCells.parts.last().more = new Parse("td", makeSemaphoreName(name), null, null); right(infoCells); } else exception(infoCells.parts, new Throwable("Unable to " + action + " semaphore '" + name + "'") ); }
@Override public void doTable(Parse table) { String[] args = this.getArgs(); doActionOnSemaphore(args[1], args[0], table.at(0, 0)); super.doTable(table); }
private static boolean deleteSemaphore(String name) { boolean isOk = (new File(makeSemaphoreName(name))).delete(); if (!isOk) System.out.print("Unable to remove semaphore '" + name + "'"); return isOk; }
@Override public void doRow(Parse row) { this.ignore(row); }
public void doTables(Parse tables) { summary.put("run date", new Date()); summary.put("run elapsed time", new RunTime()); if (tables != null) { Parse heading = tables.at(0, 0, 0); if (heading != null) { try { Fixture fixture = getLinkedFixtureWithArgs(tables); fixture.listener = listener; fixture.interpretTables(tables); } catch (Throwable e) { // NOSONAR exception(heading, e); interpretFollowingTables(tables); } } } listener.tablesFinished(counts); ClearSymbols(); SemaphoreFixture.ClearSemaphores(); //Semaphores: clear all at end }
@Override public void doTable(Parse table) { String[] args = this.getArgs(); doActionOnSemaphore(args[1], args[0], table.at(0, 0)); super.doTable(table); }
private static boolean createSemaphore(String name) { boolean isLocked = false; //---create the directory if need be File semDiry = new File(makeSemaphoreName("")); semDiry.mkdirs(); //---create the semaphore File semFile = new File(makeSemaphoreName(name)); try { isLocked = semFile.createNewFile(); } catch (IOException e) { isLocked = false; } return isLocked; }
@Override public void doRow(Parse row) { this.ignore(row); }
public void doTables(Parse tables) { summary.put("run date", new Date()); summary.put("run elapsed time", new RunTime()); if (tables != null) { Parse heading = tables.at(0, 0, 0); if (heading != null) { try { Fixture fixture = getLinkedFixtureWithArgs(tables); fixture.listener = listener; fixture.interpretTables(tables); } catch (Throwable e) { // NOSONAR exception(heading, e); interpretFollowingTables(tables); } } } listener.tablesFinished(counts); ClearSymbols(); SemaphoreFixture.ClearSemaphores(); //Semaphores: clear all at end }
private void doActionOnSemaphore(String action, String name, Parse infoCells) { boolean isOk = false; if ("lock".equals(action)) { isOk = lockSemaphore(name); if (!isOk) setForcedAbort(true); } else if ("unlock".equals(action)) isOk = unlockSemaphore(name); else exception(infoCells.parts, new Throwable("Bad action: " + action)); if (isOk) { infoCells.parts.last().more = new Parse("td", makeSemaphoreName(name), null, null); right(infoCells); } else exception(infoCells.parts, new Throwable("Unable to " + action + " semaphore '" + name + "'") ); }
private static boolean deleteSemaphore(String name) { boolean isOk = (new File(makeSemaphoreName(name))).delete(); if (!isOk) System.out.print("Unable to remove semaphore '" + name + "'"); return isOk; }
public static boolean lockSemaphore(String name) { boolean isLocked = semaphores.contains(name); //...already locked? if (!isLocked) { isLocked = createSemaphore(name); if (isLocked) semaphores.add(name); } return isLocked; }
public static boolean unlockSemaphore(String name) { boolean isOk = false; if (semaphores.contains(name)) { isOk = deleteSemaphore(name); if (isOk) semaphores.remove(name); } return isOk; }
private static boolean createSemaphore(String name) { boolean isLocked = false; //---create the directory if need be File semDiry = new File(makeSemaphoreName("")); semDiry.mkdirs(); //---create the semaphore File semFile = new File(makeSemaphoreName(name)); try { isLocked = semFile.createNewFile(); } catch (IOException e) { isLocked = false; } return isLocked; }