head	1.3;
access;
symbols
	bg2_23:1.3
	bg2_22:1.3
	bg2_21:1.3
	bg2_20:1.3
	bg2_16:1.3
	bg2_15:1.3
	bg2_12:1.3
	bg2_07:1.3
	isorc2008_submission:1.2
	handbook_alpha_edition:1.2;
locks; strict;
comment	@# @;


1.3
date	2008.02.24.19.28.04;	author martin;	state Exp;
branches;
next	1.2;
commitid	515f47c1c53d4567;

1.2
date	2007.08.16.15.44.26;	author martin;	state Exp;
branches;
next	1.1;
commitid	39e46c470d84567;

1.1
date	2007.08.16.15.26.42;	author martin;	state Exp;
branches;
next	;
commitid	79c146c46cb14567;


desc
@@


1.3
log
@JOP goes GPL
@
text
@/*
  This file is part of JOP, the Java Optimized Processor
    see <http://www.jopdesign.com/>

  Copyright (C) 2007, Alberto Andreotti

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package gcinc;
import com.jopdesign.sys.GC;
public class SimpGC4 implements Runnable {

	public myList list;
	public boolean test;
	private typeA myReference;
	int length,nr;
	public SimpGC4(int i) {
		length = i;
		}
	public void run() {
		
			if(test)
				{
				if (!myReference.testYourself(length)){
				throw new Error("Object is in wrong state");}
				synchronized(monitor)
				{shared=myReference;}
				
				myReference=null;
				test=false;
				}
			
			//System.out.println("running");
			if (SimpGC4.shared!=null){
			synchronized(monitor){
			myReference=SimpGC4.shared;
			SimpGC4.shared=null;
				}
			test=true;
			}
		}
		
	

	static typeA shared;
	static SimpGC4 a,b,c;
	static Object monitor;
	/**
	 * @@param args
	 */
	public static void main(String[] args) {
		a = new SimpGC4(22);
		b = new SimpGC4(22);
		c = new SimpGC4(22);
		monitor=new Object();
		SimpGC4.shared=new typeA(22);
		
		for (;;) {
			a.run();
			System.gc();
			b.run();
			System.gc();
			c.run();
			System.gc();
		}
	}

}	@


1.2
log
@no message
@
text
@d1 20
@


1.1
log
@no message
@
text
@d52 1
a52 1
			GC.gc();
d54 1
a54 1
			GC.gc();
d56 1
a56 1
			GC.gc();
@

