incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shazron Abdullah (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-828) iOS contact.save() stucks the UI from updating on heavy load & has memory leaks.
Date Thu, 21 Jun 2012 17:35:43 GMT

    [ https://issues.apache.org/jira/browse/CB-828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398619#comment-13398619
] 

Shazron Abdullah commented on CB-828:
-------------------------------------

Aha that's the culprit I think. Anything in UIKit MUST run in the main thread. UIWebView and
the native hud are in UIKit, thus the wait issues - UIWebView is starved while the hud is
on screen probably.
                
> iOS contact.save() stucks the UI from updating on heavy load & has memory leaks.
> --------------------------------------------------------------------------------
>
>                 Key: CB-828
>                 URL: https://issues.apache.org/jira/browse/CB-828
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>            Reporter: Olivier Louvignes
>            Assignee: Shazron Abdullah
>              Labels: contacts
>             Fix For: 1.9.0
>
>
> I'm trying to restore 3000 contacts on a device, since i need to display a progress UI,
I had to use something like this (SenchaTouch 2 code but you get the point).
> [CODE]
> //forEach contacts as contact...
> _.delay(function() {
> 				contact.save({callback : function(contact, operation) {
> 					d&&console.log(displayName + ' ~ saved ('+ action +') contact', arguments);
> 					j++;
> 					App.getViewport().mask({message: __('restore...'), details: j + '/' + count, progress:
j/count, mode: 'determinate'});
> 					// Last item ?
> 					if(j == count) {
> 						contactStore.clearFilter();
> 						return self.afterRestore(callback);
> 					}
> 				}});
> 			}, 25*i);
> [/CODE]
> Works quite well in the simulator but i'm getting regular "failed to return after waiting
10 seconds. main run loop mode: kCFRunLoopDefaultMode" on a device.
> Major issue is that UI gets stuck for minutes.
> Then i get a few "Received memory warning."
> As if somehow the memory stacked somewhere (but the whole point of making separate call
was to avoid memory breakdown), so there might be a leak.
> At the end, it sometimes work / crash.
> Would there be a way to somehow use another thread for theses AddressBook operations?
> How could i prevent theses memory leaks?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message