Check-in [cea9d9902b]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Start the thread after it has been setup.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:cea9d9902beae9694cdbc9de731fd29e14a50e34
User & Date: stephanie.gawroriski 2019-01-10 22:42:43
Context
2019-01-11
01:41
Add base interfaces for values; Add base for the SCRF representation; Implement most of the code needed to start a thread. check-in: bc4f03c934 user: stephanie.gawroriski tags: trunk
2019-01-10
22:42
Start the thread after it has been setup. check-in: cea9d9902b user: stephanie.gawroriski tags: trunk
22:10
Move a bunch of the task information into TaskStatus so there are no circular references; Base creation of threads (which are stored via weak reference in task status). check-in: bbfc2a1cb7 user: stephanie.gawroriski tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to runt/libs/summercoat-vm/cc/squirreljme/vm/summercoat/RootMachine.java.

103
104
105
106
107
108
109

110
111
112
113
114
115
116
117
118
119
120
121
122
123
124





125
126
127
128
129
130
		for (Map.Entry<String, String> e : __sprops.entrySet())
			if (e.getKey() == null || e.getValue() == null)
				throw new NullPointerException("NARG");
		
		// Create a new status for this task which contains some global
		// information that is needed, it needs our system properties and the
		// classpath since they both may be accessed

		TaskStatus status = this.statuses.createNew(
			new ClassLoader(this.runtimeclasscache, suites, __cp),
			__sprops, this.profiler);
		
		// Setup a new base running task, which has no threads yet until the
		// first is created
		RunningTask rv = new RunningTask(status);
		
		// Create a new main thread which will be where our execution context
		// will be (since we need to initialize objects)
		RunningThread thr = rv.createThread();
		
		// Setup main thread
		if (true)
			throw new todo.TODO();





		
		// Return out created task
		return rv;
	}
}








>

|













>
>
>
>
>






103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
		for (Map.Entry<String, String> e : __sprops.entrySet())
			if (e.getKey() == null || e.getValue() == null)
				throw new NullPointerException("NARG");
		
		// Create a new status for this task which contains some global
		// information that is needed, it needs our system properties and the
		// classpath since they both may be accessed
		ClassLoader cl;
		TaskStatus status = this.statuses.createNew(
			(cl = new ClassLoader(this.runtimeclasscache, suites, __cp)),
			__sprops, this.profiler);
		
		// Setup a new base running task, which has no threads yet until the
		// first is created
		RunningTask rv = new RunningTask(status);
		
		// Create a new main thread which will be where our execution context
		// will be (since we need to initialize objects)
		RunningThread thr = rv.createThread();
		
		// Setup main thread
		if (true)
			throw new todo.TODO();
		
		// Now that the thread has been initialized it must be started, it
		// will keep running executing the method it starts in until
		// termination occurs
		thr.start();
		
		// Return out created task
		return rv;
	}
}