[webkit-dev] WebKit bug in Dashboard widget?
Ben Kazez
kazezb at carleton.edu
Sun Jul 10 19:54:16 PDT 2005
Sorry about posting to the wrong list. In my case, I really do need
multiple threads due to the interaction between the widget plugin and
the widget's WebView, so I set up some notification-passing to do the
WebKit API calls from the main thread. Not only is it working, but I
now know more about threads as a result of your response. Thanks very
much!
Ben
--
Ben Kazez
http://www.benkazez.com
On Jul 10, 2005, at 9:09 PM, Timothy Hatcher wrote:
> First I would like to point out this mailing list if for
> discussions about WebKit internal development. There is webkitsdk-
> dev at lists.apple.com for discussions about development of
> applications/widgets using WebKit. You might have more exposure there.
>
> Simply locking around WebKit's WebView wont solve this problem. The
> reason is you don't know what other Cocoa classes or System APIs
> WebKit uses that aren't thread safe. Most Cocoa classes are
> publicly listed as not thread safe.
>
> There is a list of thread safe classes and other information here:
>
> http://developer.apple.com/documentation/Cocoa/Conceptual/
> Multithreading/articles/CocoaSafety.html
>
> You might want to rethink your design, calling WebKit from only the
> main thread. This will save you many headaches. Most of WebKit's
> API is non-blocking and callback/delegate based, so threads really
> aren't needed.
>
> — Timothy Hatcher » colloquy.info
>
> On Jul 10, 2005, at 7:51 PM, Ben Kazez wrote:
>
>
>> In fact, I am calling WebKit APIs from multiple threads, which
>> wasn't a good idea on my part. This is my first experience with
>> multiple threads, and I'm enjoying it but am still quite a novice.
>> My only WebKit call is to [WebView -
>> stringByEvaluatingJavaScriptFromString:], so I've changed it to
>>
>> [_webViewLock lock];
>> [_webView
>> stringByEvaluatingJavaScriptFromString:endHandlerJavaScript];
>> [_webViewLock unlock];
>>
>> where _webViewLock is an instance variable in the Dashboard plugin
>> object. However, the crash still happens -- some elements too
>> tall, others too short, elements disappearing until you mouse over
>> them, and then EXC_BAD_ACCESS. Should my locking code above have
>> worked? (I can move this discussion to Cocoa-dev if it becomes off-
>> topic for this list.)
>>
>> Thank you very much for your help.
>>
>
>
More information about the webkit-dev
mailing list