there are some issues with your model:
- init-Method of the buffers: you need to call setCursor(1,1) before calling find (otherwise the curser is placed after the init of the first buffer on the wrong position and the second buffer is not found --> one additional, double entry is created)
- you have an endless loop for the case, that a buffer is empty in your calledbypull method. You need to wait a little bit in the loop, to give the simulation a chance to run (e.g. wait(1)).
- entry control of the parallelProc: you cannot suspend this method with the condition parallelProc.empty; each MU will trigger this method --> many suspended methods; here it is better to use the exit control rear of the parallelProc to trigger the calledByPull method, if the ParallelProc is empty
one remaining problem: the observer of the buffers causes problems when reset the simulation, may be, you need another approach for moving the 3 parts between the buffers
freelance simulation specialist