Comments (7)
Attached the screenshot when deadlock happen, the SyncArraryQueue is the same as DispatchQueue mentioned above. The wrap_dispatch_sync is blocked by Disptachqueue.async as it is set as a barrier for SyncArraryQueue.
queue.async(flags: .barrier)
And the async task in SyncArraryQueue is pending as the GCD has reach the thread limitation. In normal case, the deadlock should not happen.
from cordova-ios.
The primary ask is to consider using NSOperation to have a limitation on the concurrency of the async plugin api calls instead of use dispatch queue directly and facing the potential abuse(calling it simultaneously for hundreds time) from the javascript side.
from cordova-ios.
Any maintainer could have a look at this issue?Or more input from myside is needed?@janpio
from cordova-ios.
from cordova-ios.
It sounds reasonable and the change seems minor, but I know too little of the subject to properly assess the change.
from cordova-ios.
It would be great if someone could post a plugin that demonstrates this issue.
From some quick research I think this would be a nice enhancement for a major release, someday in the future. It should be pretty straightforward: https://stackoverflow.com/questions/39952743/how-to-use-nsoperation-nsoperationqueue-in-objective-c
I found another really nice resource at: https://cocoacasts.com/choosing-between-nsoperation-and-grand-central-dispatch/
A pull request would definitely be welcome.
from cordova-ios.
@brodybits The PR is already at #454
from cordova-ios.
Related Issues (20)
- cordova ios not injecting referrerpolicy into iframe url calls HOT 7
- Loading HTML from the data directory with WKWebView results in an error HOT 1
- Cannot read property 'name' of undefined xcode@15 ios17
- Cannot read property 'name' of undefined xcode@15 ios17 HOT 2
- Webview Serving HOT 2
- Xcode 15.0: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99. HOT 15
- Allow to configure a default simulator instead of always using --target on `cordova run` HOT 1
- Failing to broadcast 'pause' event when app enters background
- xcodebuild was not found. After upgrading to Cordova 7.0.1 from Cordova 6.1.0 HOT 3
- warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 12.0 to 17.0.99 HOT 2
- Unable to configure icons for Catalyst
- Undefined symbols on Xcode HOT 3
- Version 17 breaks podfile with deployment-target HOT 2
- 每次从后台进入前台UIApplicationDidBecomeActiveNotification这个方法执行有问题 HOT 1
- Cordova was listed on the list of requirements for third-party SDKs announced by Apple today. HOT 50
- Failed to verify code signature of some framework and cannot install on device HOT 3
- (Black screen) when App Reload is triggered on iPhones with Notch:
- Console.log is not displayed in the safari terminal, but is displayed in the Xcode console HOT 1
- App stuck on splash screen on ios 16+ HOT 5
- Cordova iOS How to inject local cordova.js to remote H5 calls. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cordova-ios.