wffweb/src/main/java/com/webfirmframework/wffweb/server/page/BrowserPage.java
public final void unholdPush() {

        if (holdPush.get() > 0) {

            synchronized (wffBMBytesQueue) {

                holdPush.decrementAndGet();

                ByteBuffer wffBM = wffBMBytesHoldPushQueue.poll();

                if (wffBM != null) {

                    final NameValue invokeMultipleTasks = Task
                            .getTaskOfTasksNameValue();

                    final Deque<ByteBuffer> wffBMs = new ArrayDeque<>(
                            wffBMBytesHoldPushQueue.size() + 1);

                    do {

                        wffBMs.add(wffBM);

                        wffBM = wffBMBytesHoldPushQueue.poll();
                    } while (wffBM != null);

                    final byte[][] values = new byte[wffBMs.size()][0];

                    int index = 0;
                    for (final ByteBuffer eachWffBM : wffBMs) {
                        values[index] = eachWffBM.array();
                        index++;
                    }

                    invokeMultipleTasks.setValues(values);

                    wffBMBytesQueue
                            .add(ByteBuffer.wrap(WffBinaryMessageUtil.VERSION_1
                                    .getWffBinaryMessageBytes(
                                            invokeMultipleTasks)));
                    pushQueueSize.increment();

                    pushWffBMBytesQueue();
                }

            }
        }

    }
public final void unholdPush() {

        if (holdPush.get() > 0) {

            synchronized (wffBMBytesQueue) {

                holdPush.decrementAndGet();

                ByteBuffer wffBM = wffBMBytesHoldPushQueue.poll();

                if (wffBM != null) {

                    final NameValue invokeMultipleTasks = Task
                            .getTaskOfTasksNameValue();

                    final Deque<ByteBuffer> wffBMs = new ArrayDeque<>(
                            wffBMBytesHoldPushQueue.size() + 1);

                    do {

                        wffBMs.add(wffBM);

                        wffBM = wffBMBytesHoldPushQueue.poll();
                    } while (wffBM != null);

                    final byte[][] values = new byte[wffBMs.size()][0];

                    int index = 0;
                    for (final ByteBuffer eachWffBM : wffBMs) {
                        values[index] = eachWffBM.array();
                        index++;
                    }

                    invokeMultipleTasks.setValues(values);

                    wffBMBytesQueue
                            .add(ByteBuffer.wrap(WffBinaryMessageUtil.VERSION_1
                                    .getWffBinaryMessageBytes(
                                            invokeMultipleTasks)));
                    pushQueueSize.increment();

                    pushWffBMBytesQueue();
                }

            }
        }

    }
unholds push if not already unheld. Usage :-

<pre>
try {
browserPage.holdPush();

for (AbstractHtml tag : tags) {
tag.removeAttributes("style");
}
// other tag manipulations
} finally {
browserPage.unholdPush();
}
</pre>

@since 2.1.3
@author WFF