Re: [AD] END_OF_MAIN removal patch for msvc |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
On 2008-11-18, Thomas Fjellstrom <tfjellstrom@xxxxxxxxxx> wrote:
> On November 18, 2008, Peter Wang wrote:
> >
> > Why not my suggestion, which is for the user to give over the main
> > thread to Allegro, which must happen one way or another on Mac OS X. In
> > return, Allegro starts a function of the user's choosing in a new
> > thread. That's it. No tricks, no name mangling, no hidden symbols, no
> > polling calls everywhere,
>
> If the user does his job, theres one polling call ;)
It's not always the case that the program has only one main loop.
> > no reworking your program to work as a non-blocking callback.
>
> Rework what? This is a new lib with a new api. We can do whatever we want.
It's still a pain to write your program in terms of a state machine.
That's why threads (preemptive or not) were invented.
> But this isn't a bad idea either. something like the following?
>
> int main(int argc, char **argv)
> {
> // setup stuff
> ....
> return al_run(my_main, argc, argv);
> }
Right. See my message dated "Date: Tue, 18 Nov 2008 12:36:51 +1100"
where I take it a little further, where the "setup stuff" actually goes
into my_main.
> this way we get the params, and can get rid of END_OF_MAIN, and any associated
> hacks.
>
> So long as running the user's code in a separate thread causes less (and less
> serious) problems than the current and other proposed setups I'm all for it.
We'd only run the user's code in a new thread if it's actually
necessary. That means Mac OS X, where we already do that.
Peter