Worker app Debugs OK, but goes black in Build

I have a large Desktop app that runs great in Debug and Build OK (macOS, Windows and Linux). Now that I have added a Worker to this app, it still runs great in Debug, I can even see the Worker (I know its a thread, not console in Debug) running as it should.

My problem is that when I go to Build the app (macOS, Windows or Linux), it seems to compile fine until it goes to add the Worker, then the Xojo IDE goes entirely black, freezes, doesn’t finish compiling, and needs to be force quit.

I can run the half-compiled app, but it fails as it says the Worker component is missing.

How can I build my application, or find out where the problem exists?

Make example, do Feedback case, curse Xojo.

Workers seem to have lovely problems. I ask myself of anyone is really using them.

Well, debugger runs it as threads, while built version does use helper apps.

You may end up logging to some log file to find issues.

1 Like

In which version of Xojo do you have this issue? How long did you wait? I saw a very long compilation time for workers in an early “beta” of version 2020. But till 2021 the build time is very short again.

I am running 2021R1.1. It looks like it is only me who has seem this symptom, or I’m one of the few using a Worker on a large application!

I can only assume I have some code that works in a thread, but not in Console. I have all my code cross-platform Console-Safe, so I assumed it was not any of that, but it must be.

I have created a test app and am moving things across to see where it might break. If I get it reproducible, I’ll create a FeedBack Bug Report. Thanks to all.

Have you tried limiting what’s included in the Worker through its ProjectItemsToInclude property?

https://documentation.xojo.com/api/language/worker.html#worker-projectitemstoinclude

1 Like

I considered this, and may go down that line if I can’t fix it with my test app.

I tried to find the cause of the failure to Build with my Worker by adding my Classes and Modules to a Console application. While most of my code was console-safe, I use GraffitiSuite and other classes that would need lots of work to make console-safe.

So, I have decided to use ProjectItemsToInclude (https://documentation.xojo.com/api/language/worker.html#worker-projectitemstoinclude), but there is no Xojo Example or Help on how this is supposed to work.

I added lines like this to the Project Items To Include field:

myModule1.doMyMethod1
myModule2.doMyMethod2

but it gave a compile error (for every line) that ‘The project item ‘doMyMethod1’ in ProjectItemsToInclude could not be copied because it does not exist’.

It does exist, so how am I supposed to add my Modules and Method Project Items to the Worker?

You can’t add individual methods. You should list classes and modules there and then set the compatibility flags on the individual methods, properties, etc that you want included.

Or… make a specific module that only has the stuff that’s needed in the worker and just include that.

Be sure to also review the Worker Overview doc topic:

UserGuide:Worker Overview - Xojo Documentation

I was able to perform a Build by placing the required Methods inside the Worker itself and both App and Worker communicate via an external SQLite database.