> > > All programs can run in Palm OS "background" all the time. > > > >Nope, they don't. They reside in memory all the time - but at any > >given time, only one of them is actually running. They aren't given > >timeshares or even timer tick interrupts by the OS, either - > >something which is used on many OSes to implement > > pseudo-concurrency. > > Again, you fail to understand what's going on and are trying to > use your background in disk-based OS to understand Palm OS (and > therefore mis-undertand)
I understand it very well - and I insist that what I said is right and what you said is wrong. In PalmOS "all programs" DO NOT "run in the background all the time". > It is true that on any single processor system only one program > is running at any one time So, what I said is correct. > And I agree that one missing aspect of Palm OS is the lack of a > clock time event or notification, which would allow background > programs to get a little bit of processing time (say) 10 times a > second. So, what I said it correct. > But instead of this your program receives all system-level events > and those notifications it has registered for. My point is that it receives them ONLY when the foreground program stops running and *allows* them to receive these notifications. Have the foreground program run in a loop and nothing else will reaceive any notifications until this loop terminates. In an interrupt-driven environment, the currently running program will be *interrupted* by the event, so that the program(s) that have registered to receive the event have their chance to run and process it. It PalmOS the "background" applications don't "run all the time" at all - they don't run until the forgeround application stops running (i.e., is idle or terminates). > This are a lot more powerful as you receive these in background > mode and can service them regardless of what the foreground > program is doing. They are most definitely *not* "more powerful. At best, they could be just as powerful, because they allow you to do essentially the same things. In practice, they are less powerful, because your "background" program cannot receive them until the "foreground" program allows it to; there is absolutely no support from the OS in that aspect. > However, because the OS doesn't automatically take back control > from a program after any specific period of time or after > specific occasions, you have to be "well behaved" in your > background processing and not do too much before handing control > back to the OS by exiting your program. In other words, what I said is correct - the "background" programs are not "running all the time" - they are waiting for the "well behaved" foreground application to deigns to allow them to run. > Given the nature of your software, I'd recommend you restrict it > to Palm OS units running OS of 3.5 or greater, and perhaps you > should restrict it to OS 4.1 or greater. Why? Currently I have restricted it to PalmOS 3.0 or later, but I disable parts of the user interface that are related to functionality not available to the current OS version. For instance, currently I disable the ability to scan on program launch in OS 6.x, the ability to scan on card insertion in OS before 4.0, and the ability to scan on HotSync completion in OS before 3.5. Originally I thought of allowing the program to run under PalmOS 2.0 or later, but there are several beaming-related features that I didn't want to disable. Regards, Vesselin -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
