There is only one thread per process handling the events. Note that
there should only be one instance of SensorManager as well (it's a
singleton).

It's therefore not possible to have more than one thread per process
using the low-level sensor api from Java.

Mathias


On Wed, Apr 1, 2009 at 4:26 PM, Huaka‘i Po <[email protected]> wrote:
>
> (reposting from android-framework)
> Hi all,
> is the file descriptor in SensorManager.java global to all threads?
>
> In setting up the event dispatch thread for sensor events, there is a
> call
> ParcelFileDescriptor fd = service.getDataChanel();
> getDataChanel() eventually winds up calling open_data_source in the
> sensor framework, which returns an open Linux fd.  Then the code
> instantiates a new thread with a SensorThreadRunnable, part of which
> is here:
>
> private class SensorThreadRunnable implements Runnable {
>  private ParcelFileDescriptor mSensorDataFd;
>  SensorThreadRunnable(ParcelFileDescriptor fd) {
>    mSensorDataFd = fd;
>  }
> ...
>
> The run() method of SensorThreadRunnable later closes mSensorDataFd.
> Does that close the original fd returned by getDataChanel?  (i.e. is
> the fd the same one in both threads, or are the semantics more like
> dup
> () because of the Parcel stuff?)
>
> Thanks,
> Hod
> >
>

--~--~---------~--~----~------------~-------~--~----~
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---

Reply via email to