discussions-and-proposals icon indicating copy to clipboard operation
discussions-and-proposals copied to clipboard

"main queue setup" in Swift vs Objective-C modules?

Open brody4hire opened this issue 4 years ago • 2 comments

Hi I am working on adding Swift support to create-react-native-module (see https://github.com/brodybits/create-react-native-module/pull/353) and have encountered a message like this:

Module ATest requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.

Of course the solution would be to add a requiresMainQueueSetup method to the Swift module, but it leaves me wondering why this should be specified for Swift but not Objective-C, not to mention Android?

Should we assume that the background threading would not cause issues with most native modules on iOS and Android?

Or should we consider calling native modules from the main thread by default, unless otherwise specified?

And I think this needs to be documented. Here is what I found so far, only for Android:

  • https://reactnative.dev/docs/native-modules-android#threading

brody4hire avatar Jul 09 '21 00:07 brody4hire

Everything is described quite well here https://stackoverflow.com/questions/50773748/difference-requiresmainqueuesetup-and-dispatch-get-main-queue/50775641

radko93 avatar Jul 12 '21 09:07 radko93

hi

yaghobi4398010 avatar Aug 23 '21 08:08 yaghobi4398010