summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2014-07-27dispatcher: Really merge it, verify that install is calledHEADmasterHolger Hans Peter Freyther3-2/+6
2014-07-27dispatcher: Merge code from Norbert to allow to install alternative dispatchersHolger Hans Peter Freyther1-3/+19
Norbert introduced the MockDispatcher to get nice and direct exceptions.
2014-07-27timer: Prevent a potential race with the loop process resumptionHolger Hans Peter Freyther2-14/+19
It is possible that the "loop" has determined there are no pending timers but then the insertion application is executing and is inserting a timer. Once the loop is executing again it will sleep as there was no timer and we will miss the wake-up until there is another timer.
2014-07-27timer: Implement the shutdown for GNU Smalltalk too.Holger Hans Peter Freyther1-0/+6
2014-07-27timer: Merge the timer changes from norbert and some races fixesHolger Hans Peter Freyther5-31/+118
Allow timers < 1 second and have the timer loop wait for the closest time. This is not completely race free yet.
2014-07-21timer: Assign the loop _before_ running the processHolger Hans Peter Freyther1-3/+6
Avoid a potential race condition. Assign the loop variable before starting the process. Otherwise the effect on loop could be that a terminated process is being assigned. Spotted while reviewing a problem Norbert experienced in Pharo
2014-03-14timer: Forget about the block to help the GCHolger Hans Peter Freyther1-0/+1
After a timer has been canceled we can forget about the block that was supposed to be canceled. It is only a matter of time until the timer will be discarded by the TimerScheduler.
2014-02-12extensions: Add copyright statements from PharoHolger Hans Peter Freyther1-6/+12
2014-02-12timer: Another approach to fix the issues on PharoHolger Hans Peter Freyther2-29/+28
Pharo's DateAndTime/Delay and VM interaction is bogus. If we execute DateAndTime/Delay too early things will get stuck and take 100% of the CPU.
2013-10-07delay: Try to make it work better on PharoHolger Hans Peter Freyther2-4/+8
Do not attempt to terminate a process, just signal the lastDelay to kick the queue again.
2013-04-30compat: Add >>#deprecated: for Pharo compat to indicate old methodsHolger Hans Peter Freyther1-0/+6
2013-04-01pharo: Create >>#initialize methods that are called during loadHolger Hans Peter Freyther1-0/+11
2013-02-23pharo: Add a test case for ?: syntax of the macro expansionHolger Hans Peter Freyther1-0/+9
2013-02-23pharo: Introduce the expandMacros related String classes from PharoHolger Hans Peter Freyther3-0/+106
The >>bindWith: or >>% is not available in Pharo and other dialects. From a licensing point of view it is easier to introduce the Pharo equivalent to GST than to use the GST code in Pharo. Add a simple testcase for some parts of the API. Pharo doesn't appear to use the % and ? syntax at all.
2013-02-20misc: Avoid using the CharacterArray>>% as it is not available in PharoHolger Hans Peter Freyther2-2/+3
2013-02-20dispatcher: Add a small testcase for the dispatcher in error conditionsHolger Hans Peter Freyther2-0/+17
2013-02-20pharo: The TimerDispatcher needs more work on Pharo for image resumeHolger Hans Peter Freyther3-1/+34
In Pharo the Delay>>wait for one second will not expire anytime soon in a new image. Use the depedency handling so we can terminate and restart the loop.
2013-02-20dispatcher: Dispatch the blocks in a new process to avoid terminationHolger Hans Peter Freyther1-2/+9
Avoid the dispatcher process from being terminated. Dispatch the block in a new context. This is easier than detecting the termination and then respawn it.
2013-02-15misc: Ignore the fileout.st generated by the convert targetHolger Hans Peter Freyther1-0/+1
2013-02-10pharo: Work on the automatic fileout to pharoHolger Hans Peter Freyther3-2/+33
Remove the PackageLoader fileInPackage statement as it is conflicting with the export as there is no PackageLoader in Pharo. Add a Makefile to help with invoking the export and create a compat_for_pharo.st for the methods not provided by Pharo. The testcase is working now.
2013-02-10misc: Modernize the category names to help with MontiCello groupingHolger Hans Peter Freyther2-2/+2
2012-08-08process: Name all processes started by osmo-coreHolger Hans Peter Freyther2-2/+8
2011-09-27core: Add proper categories to the class, call it OsmoCoreHolger Hans Peter Freyther3-3/+7
2011-07-06timer: Try to avoid copying the entire timerlist all the timerHolger Hans Peter Freyther1-20/+15
Make sure that we only remove from one process, this way we can check if the list is empty without having a lock. The list is sorted so even if we get interrupted between the [condition] whileFalse: [res] and someone adds an older timer, it is okay to use this timer.
2011-07-06dispatcher: Run the dispatch queue with a higher priorityHolger Hans Peter Freyther1-1/+1
We want the dispatching to happen faster, change the priority and see how things will turn out.
2011-06-29timer: Dispatch the whole timer in the main block.Holger Hans Peter Freyther1-2/+6
2011-06-28dispatcher: Introduce a dispatcher than can dispatch things...Holger Hans Peter Freyther4-5/+76
When dispatching everything in the same context we avoid all kind of issues with locking. If we use a truely multi threaded VM we could probably use multiple dispatchers.
2011-06-28timer: Fix the comments, try to be more clear about what happensHolger Hans Peter Freyther1-3/+3
2011-06-22timer: Ignore already removed timersHolger Hans Peter Freyther1-1/+1
2011-06-22timer: Add the initial version of the timer codeHolger Hans Peter Freyther5-0/+250
The code comes from the OsmoGSM repository but didn't have a lot of history.