Not very much accustom to Objective C, hence trying to observe NSWorkspaceDidActivateApplicationNotification event in C++ code with CFNotificationCenterAddObserver() method.
#include<CoreFoundation/CFNotificationCenter.h>
#include<iostream>
#include<QGuiApplication>
void Callback (CFNotificationCenterRef center, void* observer, CFNotificationName name,
const void* object,
CFDictionaryRef userInfo)
{
std::cout << "Hello World\n";
//NSLog(#"New application: %#", [[name userInfo] objectForKey:NSWorkspaceApplicationKey]);
}
int main (int argc, char** argv)
{
QGuiApplication application(argc, argv);
std::cout << "Add observer\n";
CFNotificationCenterAddObserver(CFNotificationCenterGetDistributedCenter(), nullptr, Callback,
CFStringRef("NSWorkspaceDidActivateApplicationNotification"), nullptr,
CFNotificationSuspensionBehaviorDeliverImmediately);
std::cout << "Added ...\n";
return application.exec();
}
However it results in below crash. If I try to run in debug mode, then it sometimes shows the below crash or sometimes get stuck in that function itself.
Add observer
2021-12-03 21:44:24.527086+0530 Test[17288:982994] -[__NSTaggedDate length]: unrecognized selector sent to instance 0x100007c65
2021-12-03 21:44:24.527916+0530 Test[17288:982994] [General] An uncaught exception was raised
2021-12-03 21:44:24.527943+0530 Test[17288:982994] [General] -[__NSTaggedDate length]: unrecognized selector sent to instance 0x100007c65
2021-12-03 21:44:24.528044+0530 Test[17288:982994] [General] (
0 CoreFoundation 0x00007fff35570035 __exceptionPreprocess + 256
1 libobjc.A.dylib 0x00007fff5fc80a17 objc_exception_throw + 48
2 CoreFoundation 0x00007fff355e9fce -[NSObject(NSObject) __retain_OA] + 0
3 CoreFoundation 0x00007fff35511e9f ___forwarding___ + 1485
4 CoreFoundation 0x00007fff35511848 _CF_forwarding_prep_0 + 120
5 CoreFoundation 0x00007fff355aca4c __CFXNotificationRegisterObserver + 588
6 CoreFoundation 0x00007fff3548a037 CFNotificationCenterAddObserver + 204
7 Test 0x00000001000066a1 main + 129
8 libdyld.dylib 0x00007fff614503d5 start + 1
)
2021-12-03 21:44:24.528241+0530 Test[17288:982994] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSTaggedDate length]: unrecognized selector sent to instance 0x100007c65'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff35570035 __exceptionPreprocess + 256
1 libobjc.A.dylib 0x00007fff5fc80a17 objc_exception_throw + 48
2 CoreFoundation 0x00007fff355e9fce -[NSObject(NSObject) __retain_OA] + 0
3 CoreFoundation 0x00007fff35511e9f ___forwarding___ + 1485
4 CoreFoundation 0x00007fff35511848 _CF_forwarding_prep_0 + 120
5 CoreFoundation 0x00007fff355aca4c __CFXNotificationRegisterObserver + 588
6 CoreFoundation 0x00007fff3548a037 CFNotificationCenterAddObserver + 204
7 Test 0x00000001000066a1 main + 129
8 libdyld.dylib 0x00007fff614503d5 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
How to fix this?
Use CFSTR macro to create a CFStringRef from a constant C string like so:
CFSTR("NSWorkspaceDidActivateApplicationNotification")
NSWorkspaceDidActivateApplicationNotification docs says that you have to use NSWorkspace.notificationCenter to receive it, CFNotificationCenterGetDistributedCenter won't work.
the audio unit subType is kAudioUnitSubType_VoiceProcessingIO,
and use kAudioOutputUnitProperty_CurrentDevice to set Device ID for the audio unit
OSStatus result = AudioOutputUnitStop(audio_unit);
result = AudioUnitUninitialize(audio_unit);
result = AudioComponentInstanceDispose(audio_unit);
Thread trace:
3 ExceptionHandling 0x00007fff3c64ef31 -[NSExceptionHandler _handleException:mask:] + 364
4 ExceptionHandling 0x00007fff3c64ecac NSExceptionHandlerUncaughtSignalHandler + 35
5 libsystem_platform.dylib 0x00007fff204d3d7d _sigtramp + 29
6 CoreFoundation 0x00007fff2050f381 CFStringGetLength + 11
7 CoreFoundation 0x00007fff205225c7 CFStringCompare + 24
8 CoreAudio 0x00007fff221e83f5 _ZN9HALDevice4DuckEfPK14AudioTimeStampf + 921
9 CoreAudio 0x00007fff21d3ed48 AudioDeviceDuck + 843
10 AudioDSP 0x00000001390d7d4a _Z14DuckOtherAudiojff + 51
11 AudioDSP 0x0000000139213e06 _ZN16AUVoiceProcessor22DestroyAggregateDeviceEv + 974
12 AudioDSP 0x0000000139215459 _ZN16AUVoiceProcessorD2Ev + 417
13 AudioDSP 0x00000001392efdec _ZN13ComponentBase8AP_CloseEPv + 30
14 AudioToolboxCore 0x00007fff219e4b6a AudioComponentInstanceDispose + 55
You are disposing of an Audio Instance before it is stopped.
Note that AudioOutputUnitStop may not stop an audio unit immediately, since the audio thread runs asynchronously. If you delay for a half second after stopping the audio unit, that other thread is likely stopped by then and then you can more safely dispose of its resources.
My app has been rejected from Apple quite a long time now.
They say that I get crash on dashboard but although it works fine on simulator and device
I implemented 2 approaches to get the crash report
Firebase Analytics
Symbolised the crash reported shared by Apple.
.init(coder:)
It says error generated by compiler
8 SSBS 0x10521c174 DashboardViewController.init(coder:) + 5308788 (<compiler-generated>:0)
9 SSBS 0x10521c238 #objc DashboardViewController.init(coder:) + 5308984 (<compiler-generated>:0)
In this case, what do I need to implement in my ViewController Class file
So the crash report generated fr
om that is :
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
*Last Exception Backtrace:
0 CoreFoundation 0x1adc3b794 0x1adb11000 + 1222548
1 libobjc.A.dylib 0x1ad95dbcc 0x1ad958000 + 23500
2 CoreFoundation 0x1adb31b98 0x1adb11000 + 134040
3 UIKitCore 0x1b1652c74 0x1b12b4000 + 3796084
4 UIFoundation 0x1b123fe94 0x1b11d5000 + 437908
5 UIFoundation 0x1b12400b4 0x1b11d5000 + 438452
6 UIFoundation 0x1b11dccac 0x1b11d5000 + 31916
7 UIKitCore 0x1b1699dd0 0x1b12b4000 + 4087248
8 SSBS 0x10521c174 DashboardViewController.init(coder:) + 5308788 (<compiler-generated>:0)
9 SSBS 0x10521c238 #objc DashboardViewController.init(coder:) + 5308984 (<compiler-generated>:0)
10 UIKitCore 0x1b1973c40 0x1b12b4000 + 7076928
11 UIFoundation 0x1b123fe94 0x1b11d5000 + 437908
12 UIFoundation 0x1b11dccac 0x1b11d5000 + 31916
13 UIKitCore 0x1b1977bbc 0x1b12b4000 + 7093180
14 UIFoundation 0x1b123fe94 0x1b11d5000 + 437908
15 UIFoundation 0x1b12400b4 0x1b11d5000 + 438452
16 UIFoundation 0x1b11dccac 0x1b11d5000 + 31916
17 UIKitCore 0x1b1972cd8 0x1b12b4000 + 7072984
18 UIKitCore 0x1b1975858 0x1b12b4000 + 7084120
19 UIKitCore 0x1b1e4784c 0x1b12b4000 + 12138572
20 SSBS 0x1052b55a8 closure #1 in LoginViewController.RegisterUserOnServer() + 5936552 (LoginViewController.swift:707)
21 Alamofire 0x105e47454 0x105d54000 + 996436
22 Alamofire 0x105d7ac94 0x105d54000 + 158868
23 libdispatch.dylib 0x1ad9009a8 0x1ad8a6000 + 371112
24 libdispatch.dylib 0x1ad901524 0x1ad8a6000 + 374052
25 libdispatch.dylib 0x1ad8b35b4 0x1ad8a6000 + 54708
26 CoreFoundation 0x1adbb97fc 0x1adb11000 + 690172
27 CoreFoundation 0x1adbb46d0 0x1adb11000 + 669392
28 CoreFoundation 0x1adbb3ce8 0x1adb11000 + 666856
29 GraphicsServices 0x1b7cfe38c 0x1b7cfb000 + 13196
30 UIKitCore 0x1b1ce2444 0x1b12b4000 + 10675268
31 SSBS 0x1051ba4b4 main + 4908212 (AppDelegate.swift:21)
32 libdyld.dylib 0x1ada3b8f0 0x1ada3a000 + 6384
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001ada30d88 0x1ada0b000 + 155016
1 libsystem_pthread.dylib 0x00000001ad9491e8 0x1ad947000 + 8680
2 libsystem_c.dylib 0x00000001ad89c9b0 0x1ad82a000 + 469424
3 libsystem_c.dylib 0x00000001ad89c940 0x1ad82a000 + 469312
4 libc++abi.dylib 0x00000001ada04cc0 0x1ad9f2000 + 76992
5 libc++abi.dylib 0x00000001ad9f6e10 0x1ad9f2000 + 19984
6 libobjc.A.dylib 0x00000001ad95de80 0x1ad958000 + 24192
7 SSBS 0x0000000105501948 FIRCLSTerminateHandler() + 8345928 (FIRCLSException.mm:338)
8 SSBS 0x00000001054abc90 CLSTerminateHandler+ 7994512 () + 348
9 libc++abi.dylib 0x00000001ada0414c 0x1ad9f2000 + 74060
10 libc++abi.dylib 0x00000001ada040e4 0x1ad9f2000 + 73956
11 libdispatch.dylib 0x00000001ad901538 0x1ad8a6000 + 374072
12 libdispatch.dylib 0x00000001ad8b35b4 0x1ad8a6000 + 54708
13 CoreFoundation 0x00000001adbb97fc 0x1adb11000 + 690172
14 CoreFoundation 0x00000001adbb46d0 0x1adb11000 + 669392
15 CoreFoundation 0x00000001adbb3ce8 0x1adb11000 + 666856
16 GraphicsServices 0x00000001b7cfe38c 0x1b7cfb000 + 13196
17 UIKitCore 0x00000001b1ce2444 0x1b12b4000 + 10675268
18 SSBS 0x00000001051ba4b4 main + 4908212 (AppDelegate.swift:21)
19 libdyld.dylib 0x00000001ada3b8f0 0x1ada3a000 + 6384*
code of DashboardViewController:
class DashboardViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//navigationHeaderItem()
// Do any additional setup after loading the view.
if(self.isNewDashboard == nil || self.isNewDashboard == true){
self.newDashboardView.isHidden = false
}else{
self.newDashboardView.isHidden = true
}
let menuMangerObj = MenuDrawerManager()
let resultItem=menuMangerObj.getByItemDrawerItem("My Meetings") as NSArray
if(resultItem.count>0){
self.newDashboardView.isHidden = false
}else{
self.newDashboardView.isHidden = true
}
self.loginUserName.text=userdDefaultData.string(forKey: "loginUserName")
}
}
I initiate a view controller like:
let vcObj = self.storyboard?.instantiateViewController(withIdentifier: "DashboardController") as! DashboardViewController
vcObj.isNewDashboard = true
self.navigationController?.pushViewController(vcObj, animated: true)
Am I am missing anything here?
I'm trying to read a webcam stream in opencv c++ on OS X but when I attempt to open the feed I produce the following error:
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
Stacktrace:
*** First throw call stack:
(
0 CoreFoundation 0x00007fff86cfee7b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fff9b8e8cad objc_exception_throw + 48
2 CoreFoundation 0x00007fff86c181dc -[__NSArrayM objectAtIndex:] + 204
3 libopencv_highgui.2.4.dylib 0x0000000104b09280 _ZN13CvCaptureFileC2EPKc + 350
4 libopencv_highgui.2.4.dylib 0x0000000104b07cf2 _Z32cvCreateFileCapture_AVFoundationPKc + 34
5 libopencv_highgui.2.4.dylib 0x0000000104afb7ee cvCreateFileCapture + 14
6 libopencv_highgui.2.4.dylib 0x0000000104afba9e _ZN2cv12VideoCapture4openERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE + 64
7 classification.bin 0x0000000104031842 main + 370
8 libdyld.dylib 0x00007fff9c1cc255 start + 1
9 ??? 0x0000000000000005 0x0 + 5
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6
Code:
VideoCapture cap;
printf("vidcap created\n"); // This message is printed
cap.open("http://192.168.1.155:80/video.cgi?dummy=.mjpg");
printf("feed opened\n"); // this one is not
What could be the reason for this error?
I made an application using Qt where I manipulate Images using the Magick++ library.
The problem is when I'm trying to apply the effects into a list of images, the programs stops responding until the processing is done, I guess that is very normal but I also guess that there should be a solution using new process? concurrency perhaps?
This is the code that is being executed when I'm processing images.
foreach (QFileInfo f, list)
{
Image image;
image.read(qPrintable(f.absoluteFilePath()));
try {
//Apply effects effects
image.addNoise(GaussianNoise);
image.magick("png");
image.rotate(90);
image.write("//users//files//");
}
catch ( Magick::Exception & error)
{
// Displaying any possible errors on the text browser
ui->textBrowser_error->setText(error.what());
}
}
Can anyone show me a code hint that can help me avoid my program by going into non-responding mode?
This is the current solution(Thanks to OneOfOne)
void ClassName::processAll() {
QList<QFileInfo> files = list;
QFuture<void> future = QtConcurrent::map(files, &ClassName::processImage);
}
void ClassName::processImage(QFileInfo & f) {
Image image;
image.read(qPrintable(f.absoluteFilePath()));
try {
// Apply effects effects
image.magick("png");
image.rotate(90);
image.write("//Users//macmini//Desktop//files");
} catch ( Magick::Exception & error) {
// Displaying any possible errors on the text browser.
/* ui->textBrowser_error->setText(error.what()); <- This will not run so I had to commented out */
}
}
This makes my program compile but after that I get a runtime error from apple:
Process: ProgramName [2801]
Path: /Users/macmini/ProgramName-build-desktop/ProgramName.app/Contents/MacOS/ProgramName
Identifier: com.yourcompany.ProgramName
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: Qt Creator [2630]
Date/Time: 2010-12-13 18:55:54.381 +0000
OS Version: Mac OS X 10.6.5 (10H574)
Report Version: 6
Interval Since Last Report: 459149 sec
Crashes Since Last Report: 54
Per-App Interval Since Last Report: 59953 sec
Per-App Crashes Since Last Report: 16
Anonymous UUID: 2FA19EA1-D3CE-479B-B074-AB6A297BEFCF
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000010
Crashed Thread: 7
Thread 0: Dispatch queue: com.apple.main-thread
0 com.apple.Foundation 0x00007fff83a9927d -[NSConcreteMapTable objectForKey:] + 1
1 com.apple.AppKit 0x00007fff80f670df -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 1104
2 com.apple.AppKit 0x00007fff80f66ab0 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 254
3 com.apple.AppKit 0x00007fff80f63362 -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2683
4 com.apple.AppKit 0x00007fff80edcb9a -[NSView displayIfNeeded] + 969
5 QtGui 0x0000000100346cca -[QCocoaWindow displayIfNeeded] + 250
6 com.apple.AppKit 0x00007fff80ed7a46 _handleWindowNeedsDisplay + 678
7 com.apple.CoreFoundation 0x00007fff86644b37 __CFRunLoopDoObservers + 519
8 com.apple.CoreFoundation 0x00007fff86620464 __CFRunLoopRun + 468
9 com.apple.CoreFoundation 0x00007fff8661fdbf CFRunLoopRunSpecific + 575
10 com.apple.HIToolbox 0x00007fff840a291a RunCurrentEventLoopInMode + 333
11 com.apple.HIToolbox 0x00007fff840a267d ReceiveNextEventCommon + 148
12 com.apple.HIToolbox 0x00007fff840a25d8 BlockUntilNextEventMatchingListInMode + 59
13 com.apple.AppKit 0x00007fff80eace64 _DPSNextEvent + 718
14 com.apple.AppKit 0x00007fff80eac7a9 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
15 com.apple.AppKit 0x00007fff80e7248b -[NSApplication run] + 395
16 QtGui 0x0000000100354344 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1588
17 QtCore 0x00000001010bde54 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
18 QtCore 0x00000001010be174 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 180
19 QtCore 0x00000001010bf79c QCoreApplication::exec() + 188
20 com.yourcompany.ProgramName 0x00000001000031cb main + 107
21 com.yourcompany.ProgramName 0x0000000100002fb6 _start + 224
22 com.yourcompany.ProgramName 0x0000000100002ed5 start + 33
Thread 1: Dispatch queue: com.apple.libdispatch-manager
0 libSystem.B.dylib 0x00007fff8061a16a kevent + 10
1 libSystem.B.dylib 0x00007fff8061c03d _dispatch_mgr_invoke + 154
2 libSystem.B.dylib 0x00007fff8061bd14 _dispatch_queue_invoke + 185
3 libSystem.B.dylib 0x00007fff8061b83e _dispatch_worker_thread2 + 252
4 libSystem.B.dylib 0x00007fff8061b168 _pthread_wqthread + 353
5 libSystem.B.dylib 0x00007fff8061b005 start_wqthread + 13
Thread 2: com.apple.CFSocket.private
0 libSystem.B.dylib 0x00007fff80644e92 select$DARWIN_EXTSN + 10
1 com.apple.CoreFoundation 0x00007fff86642498 __CFSocketManager + 824
2 libSystem.B.dylib 0x00007fff8063a536 _pthread_start + 331
3 libSystem.B.dylib 0x00007fff8063a3e9 thread_start + 13
Thread 3:
0 libSystem.B.dylib 0x00007fff8061a16a kevent + 10
1 QtCore 0x00000001010aae8a QKqueueFileSystemWatcherEngine::run() + 154
2 QtCore 0x00000001010064cf QThreadPrivate::start(void*) + 175
3 libSystem.B.dylib 0x00007fff8063a536 _pthread_start + 331
4 libSystem.B.dylib 0x00007fff8063a3e9 thread_start + 13
Thread 4:
0 libSystem.B.dylib 0x00007fff8061af8a __workq_kernreturn + 10
1 libSystem.B.dylib 0x00007fff8061b39c _pthread_wqthread + 917
2 libSystem.B.dylib 0x00007fff8061b005 start_wqthread + 13
Thread 5:
0 libSystem.B.dylib 0x00007fff8061af8a __workq_kernreturn + 10
1 libSystem.B.dylib 0x00007fff8061b39c _pthread_wqthread + 917
2 libSystem.B.dylib 0x00007fff8061b005 start_wqthread + 13
Thread 6:
Thread 7 Crashed:
0 libMagickCore.4.dylib 0x000000010144068c gomp_resolve_num_threads + 28
1 libMagickCore.4.dylib 0x00000001012c5d95 AcquirePixelCache + 309
2 libMagickCore.4.dylib 0x000000010137be02 AcquireImage + 370
3 libMagick++.4.dylib 0x00000001002b5057 Magick::ImageRef::ImageRef() + 87
4 libMagick++.4.dylib 0x00000001002ab742 Magick::Image::Image() + 50
5 com.yourcompany.ProgramName 0x00000001000047e1 ProgramName::processImage(QFileInfo&) + 33
6 com.yourcompany.ProgramName 0x0000000100008d1d QtConcurrent::MapKernel<QList<QFileInfo>::iterator, QtConcurrent::FunctionWrapper1<void, QFileInfo&> >::runIteration(QList<QFileInfo>::iterator, int, void*) + 13
7 com.yourcompany.ProgramName 0x0000000100009238 QtConcurrent::MapKernel<QList<QFileInfo>::iterator, QtConcurrent::FunctionWrapper1<void, QFileInfo&> >::runIterations(QList<QFileInfo>::iterator, int, int, void*) + 72
8 com.yourcompany.ProgramName 0x000000010000974d QtConcurrent::IterateKernel<QList<QFileInfo>::iterator, void>::threadFunction() + 573
9 QtCore 0x0000000100fffcb9 QtConcurrent::ThreadEngineBase::run() + 57
10 QtCore 0x0000000101002425 QThreadPoolThread::run() + 117
11 QtCore 0x00000001010064cf QThreadPrivate::start(void*) + 175
12 libSystem.B.dylib 0x00007fff8063a536 _pthread_start + 331
13 libSystem.B.dylib 0x00007fff8063a3e9 thread_start + 13
Thread 8:
0 libSystem.B.dylib 0x00007fff8063a3dc thread_start + 0
Thread 7 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000002148
rdi: 0x0000000000000104 rsi: 0x0000000000000000 rbp: 0x0000000116580b10 rsp: 0x0000000116580b00
r8: 0x0000000101b6e000 r9: 0x0000000116580b00 r10: 0x00007fffffe00050 r11: 0x0000000102b6c600
r12: 0x0000000000000000 r13: 0x0000000102b28000 r14: 0x0000000102b82a68 r15: 0x0000000116580d00
rip: 0x000000010144068c rfl: 0x0000000000010297 cr2: 0x0000000000000010
Binary Images:
0x100000000 - 0x100290fe7 +com.yourcompany.ProgramName ??? (???) <688ECF56-94E8-00A4-B958-94612C902F9F> /Users/macmini/ProgramName-build-desktop/ProgramName.app/Contents/MacOS/ProgramName
0x10029b000 - 0x1002dcff7 +libMagick++.4.dylib 5.0.0 (compatibility 5.0.0) <51C6408C-04BD-548B-E2FC-F112252FA2BD> /opt/local/lib/libMagick++.4.dylib
0x100317000 - 0x100ceafef +QtGui 4.7.0 (compatibility 4.7.0) <BD43BAAD-873D-45E8-3605-1E344992BB51> /Library/Frameworks/QtGui.framework/Versions/4/QtGui
0x100f92000 - 0x101217fef +QtCore 4.7.0 (compatibility 4.7.0) <AEA4A1B9-46B8-7621-8D00-555040D89C56> /Library/Frameworks/QtCore.framework/Versions/4/QtCore
0x1012ab000 - 0x101482ff7 +libMagickCore.4.dylib 5.0.0 (compatibility 5.0.0) <25912B2F-55D0-2DA9-DBBF-43986B432952> /opt/local/lib/libMagickCore.4.dylib
0x10151d000 - 0x10162efff +libMagickWand.4.dylib 5.0.0 (compatibility 5.0.0) <80E63BB5-E18A-2BAB-7AFF-D3037AE57427> /opt/local/lib/libMagickWand.4.dylib
0x10164c000 - 0x101679fe7 +liblcms.1.dylib 2.19.0 (compatibility 2.0.0) <2B45C260-15E9-151E-4C8A-05D6B402522B> /opt/local/lib/liblcms.1.dylib
0x101686000 - 0x1016dffff +libtiff.3.dylib 13.4.0 (compatibility 13.0.0) <262BF250-EA47-62E2-D6CB-573CB1E8DD6D> /opt/local/lib/libtiff.3.dylib
0x1016ec000 - 0x101721ff7 +libjpeg.8.dylib 9.2.0 (compatibility 9.0.0) <055E3C7A-A428-2298-816E-79D4279DEE25> /opt/local/lib/libjpeg.8.dylib
0x101728000 - 0x101756ff7 +libfontconfig.1.dylib 6.4.0 (compatibility 6.0.0) <ABE342A5-D352-6D3E-D588-60CEE60396EA> /opt/local/lib/libfontconfig.1.dylib
0x101761000 - 0x101780fef +libexpat.1.dylib 7.2.0 (compatibility 7.0.0) <4F23C4ED-72D8-5478-FBBC-5DC01F8E4752> /opt/local/lib/libexpat.1.dylib
0x101787000 - 0x101807fff +libfreetype.6.dylib 13.1.0 (compatibility 13.0.0) <1DBA7D79-C80E-B3F6-6BEF-5ECBBB318ADE> /opt/local/lib/libfreetype.6.dylib
0x10181c000 - 0x101918fe7 +libiconv.2.dylib 8.0.0 (compatibility 8.0.0) <6907D6DB-2535-7725-484F-74378F42AFED> /opt/local/lib/libiconv.2.dylib
0x101925000 - 0x101933ff7 +libXext.6.dylib 11.0.0 (compatibility 11.0.0) <CB09409A-FEA2-3CF5-769A-127ECCCE2963> /opt/local/lib/libXext.6.dylib
0x101939000 - 0x101986fe7 +libXt.6.dylib 7.0.0 (compatibility 7.0.0) <D780E06E-3060-3D13-BCEC-2F297E840939> /opt/local/lib/libXt.6.dylib
0x10199e000 - 0x1019acfff +libbz2.1.0.dylib 1.0.6 (compatibility 1.0.0) <B2276F4D-BAC5-E9C3-690C-DCC478079569> /opt/local/lib/libbz2.1.0.dylib
0x1019b1000 - 0x1019c5ff7 +libz.1.dylib 1.2.5 (compatibility 1.0.0) <6D767FC2-DF89-6017-4B82-A1E5EB8CEED9> /opt/local/lib/libz.1.dylib
0x1019c9000 - 0x1019cbff7 libclparser.dylib ??? (???) <9985A543-86E9-DA9E-3B97-80CA7AAE84A1>
--Code Removed-- It didnt fit!
/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x7fff85f7e000 - 0x7fff85ffdfe7 com.apple.audio.CoreAudio 3.2.6 (3.2.6) <1DD64A62-0DE4-223F-F781-B272FECF80F0> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x7fff85ffe000 - 0x7fff86083ff7 com.apple.print.framework.PrintCore 6.3 (312.7) <CDFE82DD-D811-A091-179F-6E76069B432D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x7fff86084000 - 0x7fff86588fe7 com.apple.VideoToolbox 0.484.20 (484.20) <8B6B82D2-350B-E9D3-5433-51453CDA65B4> /System/Library/PrivateFrameworks/VideoToolbox.framework/Versions/A/VideoToolbox
0x7fff865d4000 - 0x7fff8674bfe7 com.apple.CoreFoundation 6.6.4 (550.42) <770C572A-CF70-168F-F43C-242B9114FCB5> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x7fff8674c000 - 0x7fff8679bff7 com.apple.DirectoryService.PasswordServerFramework 6.0 (6.0) <14FD0978-4BE0-336B-A19E-F388694583EB> /System/Library/PrivateFrameworks/PasswordServer.framework/Versions/A/PasswordServer
0x7fff867e0000 - 0x7fff86821ff7 com.apple.CoreMedia 0.484.20 (484.20) <42F3B74A-F886-33A0-40EE-8399B12BD32A> /System/Library/PrivateFrameworks/CoreMedia.framework/Versions/A/CoreMedia
0x7fff86822000 - 0x7fff868c2fff com.apple.LaunchServices 362.1 (362.1) <2740103A-6C71-D99F-8C6F-FA264546AD8F> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x7fff868c3000 - 0x7fff868e4fff libresolv.9.dylib 41.0.0 (compatibility 1.0.0) <6993F348-428F-C97E-7A84-7BD2EDC46A62> /usr/lib/libresolv.9.dylib
0x7fff868e5000 - 0x7fff86d28fef libLAPACK.dylib 219.0.0 (compatibility 1.0.0) <0CC61C98-FF51-67B3-F3D8-C5E430C201A9> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x7fff86d3f000 - 0x7fff86d55fe7 com.apple.MultitouchSupport.framework 207.10 (207.10) <1828C264-A54A-7FDD-FE1B-49DDE3F50779> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x7fff86d56000 - 0x7fff86da7fef com.apple.HIServices 1.8.1 (???) <BE479ABF-3D27-A5C7-800E-3FFC1731767A> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x7fff86de0000 - 0x7fff86e03fff com.apple.opencl 12.3 (12.3) <D30A45FC-4520-45AF-3CA5-092313DB5D54> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x7fff86e04000 - 0x7fff86ebafff libobjc.A.dylib 227.0.0 (compatibility 1.0.0) <F206BE6D-8777-AE6C-B367-7BEA76C14241> /usr/lib/libobjc.A.dylib
0x7fff86f54000 - 0x7fff86f6afff com.apple.ImageCapture 6.0.1 (6.0.1) <09ABF2E9-D110-71A9-4A6F-8A61B683E936> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x7fff86f6b000 - 0x7fff86f9cfff libGLImage.dylib ??? (???) <57DA0064-4581-62B8-37A8-A07ADEF46EE2> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x7fff86f9d000 - 0x7fff86fa1ff7 libCGXType.A.dylib 545.0.0 (compatibility 64.0.0) <63F77AC8-84CB-0C2F-8D2B-190EE5CCDB45> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
0x7fff86fa2000 - 0x7fff86fc7ff7 com.apple.CoreVideo 1.6.2 (45.6) <E138C8E7-3CB6-55A9-0A2C-B73FE63EA288> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x7fff86fd4000 - 0x7fff86fedfff com.apple.CFOpenDirectory 10.6 (10.6) <CCF79716-7CC6-2520-C6EB-A4F56AD0A207> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x7fff86fee000 - 0x7fff870e6ff7 libiconv.2.dylib 7.0.0 (compatibility 7.0.0) <7E4ADB5A-CC77-DCFD-3E54-2F35A2C8D95A> /usr/lib/libiconv.2.dylib
0x7fff870e7000 - 0x7fff872a5fff libicucore.A.dylib 40.0.0 (compatibility 1.0.0) <781E7B63-2AD0-E9BA-927C-4521DB616D02> /usr/lib/libicucore.A.dylib
0x7fff872a6000 - 0x7fff87643fe7 com.apple.QuartzCore 1.6.3 (227.34) <215222AF-B30A-7CE5-C46C-1A766C1D1D2E> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x7fff87644000 - 0x7fff87646fff com.apple.print.framework.Print 6.1 (237.1) <CA8564FB-B366-7413-B12E-9892DA3C6157> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x7fff87682000 - 0x7fff8769dff7 com.apple.openscripting 1.3.1 (???) <FD46A0FE-AC79-3EF7-AB4F-396D376DDE71> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x7fff8769e000 - 0x7fff8769ffff liblangid.dylib ??? (???) <EA4D1607-2BD5-2EE2-2A3B-632EEE5A444D> /usr/lib/liblangid.dylib
0x7fff876a0000 - 0x7fff876bdff7 libPng.dylib ??? (???) <14043CBC-329F-4009-299E-DEE411E16134> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x7fff87901000 - 0x7fff8794bff7 com.apple.Metadata 10.6.3 (507.12) <9231045A-E2E3-B0C2-C81A-92C9EA98A4DF> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x7fff87af2000 - 0x7fff87b01fff com.apple.NetFS 3.2.1 (3.2.1) <FF21DB1E-F425-1005-FB70-BC19CAF4006E> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
0x7fff87b11000 - 0x7fff87b8ffff com.apple.CoreText 3.5.0 (???) <4D5C7932-293B-17FF-7309-B580BB1953EA> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText
0x7fff87ba9000 - 0x7fff87bf8fef libTIFF.dylib ??? (???) <AE9DC484-1382-F7AD-FE25-C28082FCB5D9> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x7fff87bf9000 - 0x7fff87cb2fff libsqlite3.dylib 9.6.0 (compatibility 9.0.0) <2C5ED312-E646-9ADE-73A9-6199A2A43150> /usr/lib/libsqlite3.dylib
0x7fff87d3d000 - 0x7fff87d4eff7 libz.1.dylib 1.2.3 (compatibility 1.0.0) <FB5EE53A-0534-0FFA-B2ED-486609433717> /usr/lib/libz.1.dylib
0x7fff87ee8000 - 0x7fff88026fff com.apple.CoreData 102.1 (251) <32233D4D-00B7-CE14-C881-6BF19FD05A03> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x7fff88027000 - 0x7fff88027ff7 com.apple.CoreServices 44 (44) <DC7400FB-851E-7B8A-5BF6-6F50094302FB> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x7fff88028000 - 0x7fff88057ff7 com.apple.quartzfilters 1.6.0 (1.6.0) <9CECB4FC-1CCF-B8A2-B935-5888B21CBEEF> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzFilters.framework/Versions/A/QuartzFilters
0x7fff88058000 - 0x7fff8806afe7 libsasl2.2.dylib 3.15.0 (compatibility 3.0.0) <76B83C8D-8EFE-4467-0F75-275648AFED97> /usr/lib/libsasl2.2.dylib
0x7fff880be000 - 0x7fff881e4fff com.apple.audio.toolbox.AudioToolbox 1.6.5 (1.6.5) <B51023BB-A5C9-3C65-268B-6B86B901BB2C> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x7fff881e5000 - 0x7fff881ebfff libCGXCoreImage.A.dylib 545.0.0 (compatibility 64.0.0) <4EE16374-A094-D542-5BC5-7E846D0CE56E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXCoreImage.A.dylib
0x7fff881ec000 - 0x7fff881eefff libRadiance.dylib ??? (???) <76438F90-DD4B-9941-9367-F2DFDF927876> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x7fff881f5000 - 0x7fff881f5ff7 com.apple.Carbon 150 (152) <19B37B7B-1594-AD0A-7F14-FA2F85AD7241> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x7fff881f6000 - 0x7fff88233ff7 libFontRegistry.dylib ??? (???) <8C69F685-3507-1B8F-51AD-6183D5E88979> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x7fff88234000 - 0x7fff88237ff7 com.apple.securityhi 4.0 (36638) <38935851-09E4-DDAB-DB1D-30ADC39F7ED0> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x7fff88238000 - 0x7fff883a7fe7 com.apple.QTKit 7.6.6 (1756) <250AB242-816D-9F5D-94FB-18BF2AE9AAE7> /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit
0x7fff8845f000 - 0x7fff88569ff7 com.apple.MeshKitIO 1.1 (49.2) <F296E151-80AE-7764-B969-C2050DF26BFE> /System/Library/PrivateFrameworks/MeshKit.framework/Versions/A/Frameworks/MeshKitIO.framework/Versions/A/MeshKitIO
0x7fff8856a000 - 0x7fff8856eff7 libmathCommon.A.dylib 315.0.0 (compatibility 1.0.0) <95718673-FEEE-B6ED-B127-BCDBDB60D4E5> /usr/lib/system/libmathCommon.A.dylib
0x7fff885b3000 - 0x7fff885c4fff com.apple.DSObjCWrappers.Framework 10.6 (134) <3C08225D-517E-2822-6152-F6EB13A4ADF9> /System/Library/PrivateFrameworks/DSObjCWrappers.framework/Versions/A/DSObjCWrappers
0x7fff885c5000 - 0x7fff88690fe7 ColorSyncDeprecated.dylib 4.6.0 (compatibility 1.0.0) <3C223A94-EF14-28C5-844B-C25DFC87FB42> /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Versions/A/Resources/ColorSyncDeprecated.dylib
0x7fff88691000 - 0x7fff887b2fe7 libcrypto.0.9.8.dylib 0.9.8 (compatibility 0.9.8) <48AEAFE1-21F4-B3C8-4199-35AD5E8D0613> /usr/lib/libcrypto.0.9.8.dylib
0x7fff887b3000 - 0x7fff888cafef libxml2.2.dylib 10.3.0 (compatibility 10.0.0) <EE067D7E-15B3-F043-6FBD-10BA31FE76C7> /usr/lib/libxml2.2.dylib
0x7fff888cb000 - 0x7fff888d0fff libGIF.dylib ??? (???) <9A2723D8-61F9-6D65-D254-4F9273CDA54A> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x7fff88c15000 - 0x7fff88c58ff7 libRIP.A.dylib 545.0.0 (compatibility 64.0.0) <7E30B5F6-99FD-C716-8670-5DD4B4BAED72> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
0x7fff88c59000 - 0x7fff88ca2fef libGLU.dylib ??? (???) <EB4255DD-A9E5-FAD0-52A4-CCB4E792B86F> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x7fff88ca3000 - 0x7fff88ceffff libauto.dylib ??? (???) <F7221B46-DC4F-3153-CE61-7F52C8C293CF> /usr/lib/libauto.dylib
0x7fff88cf0000 - 0x7fff88d6dfef libstdc++.6.dylib 7.9.0 (compatibility 7.0.0) <35ECA411-2C08-FD7D-11B1-1B7A04921A5C> /usr/lib/libstdc++.6.dylib
0x7fff88d6e000 - 0x7fff88d82ff7 com.apple.speech.synthesis.framework 3.10.35 (3.10.35) <621B7415-A0B9-07A7-F313-36BEEDD7B132> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x7fff88d83000 - 0x7fff88d84ff7 com.apple.TrustEvaluationAgent 1.1 (1) <74800EE8-C14C-18C9-C208-20BBDB982D40> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
0x7fff88d85000 - 0x7fff88df1ff7 com.apple.CorePDF 1.3 (1.3) <6770FFB0-DEA0-61E0-3520-4B95CCF5D1CF> /System/Library/PrivateFrameworks/CorePDF.framework/Versions/A/CorePDF
0x7fff88e6f000 - 0x7fff88e76fff com.apple.OpenDirectory 10.6 (10.6) <4200CFB0-DBA1-62B8-7C7C-91446D89551F> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x7fff88e77000 - 0x7fff890b2fef com.apple.imageKit 2.0.3 (1.0) <5D18C246-303A-6580-9DC9-79BE79467C95> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/ImageKit
0x7fff890b3000 - 0x7fff890b3ff7 com.apple.Accelerate.vecLib 3.6 (vecLib 3.6) <DA9BFF01-40DF-EBD5-ABB7-787DAF2D77CF> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x7fff890b4000 - 0x7fff890fbfff com.apple.QuickLookFramework 2.3 (327.6) <11DFB135-24A6-C0BC-5B97-ECE352A4B488> /System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook
0x7fff890fc000 - 0x7fff89127ff7 libxslt.1.dylib 3.24.0 (compatibility 3.0.0) <87A0B228-B24A-C426-C3FB-B40D7258DD49> /usr/lib/libxslt.1.dylib
0x7fffffe00000 - 0x7fffffe01fff libSystem.B.dylib ??? (???) <71E6D4C9-F945-6EC2-998C-D61AD590DAB6> /usr/lib/libSystem.B.dylib
Model: Macmini2,1, BootROM MM21.009A.B00, 2 processors, Intel Core 2 Duo, 2 GHz, 2 GB, SMC 1.19f0
Graphics: Intel GMA 950, GMA 950, Built-In, spdisplays_integrated_vram
Memory Module: global_name
AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x86), Atheros 5424: 2.1.14.5
Bluetooth: Version 2.3.8f7, 2 service, 19 devices, 1 incoming serial ports
Network Service: Ethernet, Ethernet, en0
Serial ATA Device: Hitachi HTS541612J9SA00, 111.79 GB
Parallel ATA Device: PIONEER DVD-RW DVR-K06
USB Device: A4 TECH USB2.0 PC Camera J, 0x0ac8 (Vimicro Corporation), 0xc40a, 0xfd600000
USB Device: 2.4Ghz wireless combo sets, 0x04fc (SUNPLUS TECHNOLOGY CO., LTD.), 0x05d8, 0x1d100000
USB Device: Bluetooth USB Host Controller, 0x05ac (Apple Inc.), 0x8205, 0x7d100000
USB Device: IR Receiver, 0x05ac (Apple Inc.), 0x8240, 0x7d200000
You can create a processing function and use Qt4's QtConcurrent::map or QtConcurrent::run.
Also check QFuture.
Example:
void processImage(QFileInfo & f) {
Image image;
image.read(qPrintable(f.absoluteFilePath()));
try {
//Apply effects effects
image.addNoise(GaussianNoise);
image.magick("png");
image.rotate(90);
image.write("//users//files//");
} catch ( Magick::Exception & error) {
// Displaying any possible errors on the text browser
ui->textBrowser_error->setText(error.what());
}
}
void processAll() {
const QList<QFileInfo> files = getFilesList();
QFuture<void> future = QtConcurrent::map(files, processImage);
//do something with future
}
edit :: Changed QFile to QFileInfo.
I don't know how it works with Qt, but on Windows (WINAPI), a user interface stops responding when the message queue for that window goes unanswered for a period of time. Here's such a loop for completeness:
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
// if you don't handle this "fast" enough, windows "whites" you out
switch ( msg )
{
case WM_COMMAND:
// ...
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
This happens if you're doing some heavy lifting processing one of those messages. That's what happens when a Windows window turns white, or grey, or whatever.
I've never worked with GUIs on Linux (I tend to write cli stuff) but I imagine it's the same principle.
You basically want to break out a new thread. However, how you do this is the interesting part.
If your app is linux-only, you could use pthreads or you could do:
pid_t result = fork()
if ( result == 0 )
{
// child
}
elseif ( result > 0 )
{
// parent, result = child process id.
}
else
{
// error. result == -1.
}
As I understand it, there is little cost difference between a thread and a process on Linux.
However, some GUI frameworks provide their own thread wrappers I believe (wxWidgets comes to mind) for portability reasons. You might want to go with that if you're looking for a cross platform solution. I don't know if Qt provides such an option. However, before anyone else says it, Boost probably does.