Wayne, That's true but it's easy to hand off tasks like that to Workers. And the worker uses CALL FORM to hand back the results.
On Fri, Aug 2, 2019 at 10:22 AM Wayne Stewart via 4D_Tech < 4d_tech@lists.4d.com> wrote: > Hi, > > One disadvantage is that there is only one execution stream with multiple > windows in the one process. > > If something is taking time in one window (a sequential search or sort or a > even just a long method) execution will stop in all other windows, the UI > will freeze etc > > > > On Sat, 3 Aug 2019 at 02:29, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com > > > wrote: > > > Hi Pat, > > For something like that I would think about using a palette or > toolbar-ish > > window as the 'root', if you will, for the UI process. > > That could actually simplify things - if the user attempts to close it > you > > confirm they want to quit. And then you don't have to fuss around with > > counting windows opened and closed. > > > > On Fri, Aug 2, 2019 at 9:19 AM Pat Bensky via 4D_Tech < > > 4d_tech@lists.4d.com> > > wrote: > > > > > I also have a question about this ... > > > In our database we require at least one user window to always be open. > > When > > > a user closes a window, the close method counts the number of user > > windows > > > and if there is only one, it doesn't allow it to be closed. > > > However ... > > > If the user has opened another window within the same process (for a > > > preview, for example), 4D now thinks there are two user windows open, > and > > > it allows the user to close it ... which of course closes both of the > > > windows. > > > Other than keeping track of all open windows-within-windows, which is > > > messy, is there any way to differentiate main windows and their > > associated > > > windows within the same process? > > > > > > PB > > > > > > On Wed, 26 Jun 2019 at 16:08, Kirk Brooks via 4D_Tech < > > > 4d_tech@lists.4d.com> > > > wrote: > > > > > > > Hi Chris, > > > > Good questions. Here are my thoughts on them based on what I've > picked > > up > > > > from the World Tour and Summits. > > > > > > > > On Wed, Jun 26, 2019 at 12:31 AM Chris Belanger via 4D_Tech < > > > > 4d_tech@lists.4d.com> wrote: > > > > > > > > > 1) What is the reasonable limit as to how many windows/dialogs > should > > > get > > > > > opened in the same process? > > > > > > > > > This is going to be limited by the resources available to 4D. A > laptop > > > with > > > > the minimum RAM and processor is going to have a lower limit than a > > nice > > > > new Mac Pro by a long way. > > > > > > > > But there's no reason to be opening a huge number of windows. A > window > > is > > > > really a UI portal as it were. We no longer need to hack certain > > > operations > > > > with 'offscreen' or 'hidden' windows so a good design should open a > > > window > > > > for something useful. > > > > > > > > On top of that now it's really easy and fast to completely repurpose > > > what a > > > > window is 'doing' anyway. You could design a window interface to be a > > lot > > > > like the OS window interfaces are - you display something and then > > > > completely change it based on a user action. But now we could revert > to > > > any > > > > previous window content like the back button on a Finder window. You > > > would > > > > have to retain the displayed form and the Form contents but with that > > > info > > > > you could reload a past window. > > > > > > > > So I think this is a case where the technical limit on the number of > > > > windows is less important than building a good design for the > > interface. > > > > > > > > > > > > > 2) do windows that share the same process also share processing > time? > > > > What > > > > > I mean is: If window A is executing, does window B have to wait > until > > > > > Window A is done before any processing it does would start (think > > CALL > > > > FORM > > > > > ( window ) )? > > > > > > > > > > For example: Window A is doing a QUERY that takes a few seconds. > Does > > > > that > > > > > make Window B (in the same process) unresponsive until Window A has > > > > > finished the QUERY? > > > > > > > > > Prior to preemptive processes each instance of 4D ran on a single > core > > of > > > > the machine. How the CPU cycles were allocated and prioritized was > > > between > > > > 4D and OS. To us it looked like multiple processes were running > > > 'parallel' > > > > but it was all happening on a single core. The only way you could > truly > > > > have parallel processing was by using server side processes or > EXECUTE > > ON > > > > CLIENT and each of those instances were limited in the same way. > > > > > > > > With a preemptive process you can truly have different processes > > running > > > > concurrently on different cores. Thomas Maul has some great demos of > > > this. > > > > If you aren't a Partner (they may be walled off from non-partners) > > check > > > > out a presentation he did for 4DMethod <https://4dmethod.com/>. He > > also > > > > includes a demo of why pre-emptive processing only matters on actual > > > > hardware, not virtualized machines. I forget if that's in the > 4DMethod > > > > preso or I saw it at a Summit. Bottom line: preemptive is meaningless > > on > > > a > > > > virtual machine because the virtual machine is running virtual cores > > and > > > > then entire virtual machine is running on a single instance of the > host > > > > machine. So, if you plan to deploy on AWS or the like don't worry > about > > > > preemptive, just use CALL WORKER. > > > > > > > > So all the windows in the UI process will work, essentially, like the > > > > windows in the separate processes we used to use. 4D has optimized > > things > > > > like query a lot, for example. And the speed is improved > > significantly. I > > > > hear in v18 ORDA may be as fast as classic 4D queries. > > > > > > > > > > > > > 3) I used separate processes before because it was possible to do > > > > > ‘parallel processing’ that way. Because windows were in separate > > > > processes, > > > > > anything one window was working on would not impact the > > responsiveness > > > of > > > > > other windows. > > > > > Is it still advisable to break out windows under its own process if > > it > > > > may > > > > > need to do substantial processing at times? > > > > > > > > > It would be better to break out the heavy operations using CALL > WORKER. > > > > This is really what it's designed for. > > > > > > > > Underlying all this is the question of memory management. I have the > > > > impression 4D is committed to optimizing memory use. New process > > > > <https://doc.4d.com/4Dv17R5/4D/17-R5/New-process.301-4128085.en.html > > > > > > recommends 0 for the stack size, "Pass 0 in stack to use a default > > stack > > > > size, suitable for most applications (recommended setting)." The docs > > go > > > on > > > > to say the size is not total process memory and is influenced by > things > > > > like number of windows, number of forms, and so on. This isn't > anything > > > new > > > > and doesn't address the situation you start off asking about. > > > > > > > > I expect the memory allocation when you pass 0 stack size has been > > > > addressed but it would be good for someone closer to the engineering > > team > > > > to weight in on it. > > > > > > > > -- > > > > Kirk Brooks > > > > San Francisco, CA > > > > ======================= > > > > > > > > What can be said, can be said clearly, > > > > and what you can’t say, you should shut up about > > > > > > > > *Wittgenstein and the Computer * > > > > > ********************************************************************** > > > > 4D Internet Users Group (4D iNUG) > > > > Archive: http://lists.4d.com/archives.html > > > > Options: https://lists.4d.com/mailman/options/4d_tech > > > > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > > > > > ********************************************************************** > > > > > > > > > > > > -- > > > ************************************************* > > > CatBase - Top Dog in Data Publishing > > > tel: +44 (0) 207 118 7889 > > > w: http://www.catbase.com > > > skype: pat.bensky > > > ************************************************* > > > ********************************************************************** > > > 4D Internet Users Group (4D iNUG) > > > Archive: http://lists.4d.com/archives.html > > > Options: https://lists.4d.com/mailman/options/4d_tech > > > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > > > ********************************************************************** > > > > > > > > -- > > Kirk Brooks > > San Francisco, CA > > ======================= > > > > What can be said, can be said clearly, > > and what you can’t say, you should shut up about > > > > *Wittgenstein and the Computer * > > ********************************************************************** > > 4D Internet Users Group (4D iNUG) > > Archive: http://lists.4d.com/archives.html > > Options: https://lists.4d.com/mailman/options/4d_tech > > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > > ********************************************************************** > > -- > > Regards, > > Wayne > ********************************************************************** > 4D Internet Users Group (4D iNUG) > Archive: http://lists.4d.com/archives.html > Options: https://lists.4d.com/mailman/options/4d_tech > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > ********************************************************************** -- Kirk Brooks San Francisco, CA ======================= What can be said, can be said clearly, and what you can’t say, you should shut up about *Wittgenstein and the Computer * ********************************************************************** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **********************************************************************