On May 14, 2013, at 5:23 PM, Andrew Sinclair <a...@sinky.plus.com> wrote:
> The app data layer has been running on the platform for two years and has 
> been very reliable.

Does your application have armeabi-v7a support? (See Project Properties > 
Supported architectures.)

Two years ago the default CPU architecture for Mono for Android apps was 
armeabi (armv5). The armeabi ABI does not have any support for SMP systems.

Most hardware released today is multi-core, and thus _requires_ armeabiv-v7a in 
order to run safely. If your app is only including the armeabi runtime, you 
will see "bizarre" behavior on multicore devices because you're using a 
non-SMP-safe runtime on an SMP machine. (Using C# `lock` won't help here, as 
the locks themselves won't work properly, because the targeted CPU ABI lacks 
the necessary support to be SMP safe!)

        http://docs.xamarin.com/guides/android/advanced_topics/cpu_architecture

> The app reads and writes to the database on a background thread, as well as 
> on the main thread - this has always been the case.


This is somewhat worrying:

        http://www.sqlite.org/threadsafe.html

_How_ are you writing to the DB between your threads? Do you have a single 
SqliteConnection instance that you're sharing between threads (bad!), or is 
each thread creating and using its own SqliteConnection instance (better!)?

        http://forums.xamarin.com/discussion/comment/11935/#Comment_11935
        http://forums.xamarin.com/discussion/comment/1646/#Comment_1646
        http://forums.xamarin.com/discussion/549/sqlite-net-and-multiple-threads

Thanks,
 - Jon

_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to