asocket_connect()
asocket_accept()
asocket_read()
asocket_write()
These calls are similar to the regular syscalls, but can be aborted with:
asocket_abort()
Calling close() on a regular POSIX socket does not abort blocked syscalls on
that socket in other threads.
After calling asocket_abort() the socket cannot be reused.
Call asocket_destory() *after* all threads have finished with the socket to
finish closing the socket and free the asocket structure.
The helper is implemented by setting the socket non-blocking to initiate
syscalls connect(), accept(), read(), write(), then using a blocking poll()
on both the primary socket and a local pipe. This makes the poll() abortable
by writing a byte to the local pipe in asocket_abort().
asocket_create() sets the fd to non-blocking mode. It must not be changed to
blocking mode.
Using asocket will triple the number of file descriptors required per
socket, due to the local pipe. It may be possible to use a global pipe per
process rather than per socket, but we have not been able to come up with a
race-free implementation yet.
All functions except asocket_init() and asocket_destroy() are thread safe.
If libacc is built on x86, then x86 is the default code generator.
If libacc is built on arm. then ARM is the default code generator
And so on for future architectures.
The 64-bit x64 machine has no working code generator currently.
We may add one to support the simulator builds.
Improved the test program so we don't try to run tests if the
compile failed. Also avoid running tests that don't work on
a given platform.
To add arguments dynamically to a service, start the service like so:
setprop ctl.start service_to_run:arg1 arg2 arg3...
To start a service with *no* dynamic arguments, start the service normally:
setprop ctl.start service_to_run
Dynamic arguments are only supported on 'oneshot' services
Signed-off-by: San Mehat <san@google.com>
Merge commit '7edc4f9454f1665b73faf0c02543cf350b741a53'
* commit '7edc4f9454f1665b73faf0c02543cf350b741a53':
vold: If a filesystem is read/only then restart the fscheck but don't make any changes
Merge commit '414ff7d98ac8d7610a26206335954ad15f43f3ac'
* commit '414ff7d98ac8d7610a26206335954ad15f43f3ac':
Move fdevent from libcutils into adb directory. ADB is the only client of this API, and I intend to modify it extensively to clean its codebase soon.
Collapsed the inc/dec codegen into the loadEAX function, because it
allows us to generate better code for inc/dec'ing a global variable
on ARM, because we don't have to load the variable's address twice.
Merge commit 'e398151e7830510f27305cc1cb8f9a0510106f9a'
* commit 'e398151e7830510f27305cc1cb8f9a0510106f9a':
nexus: Flesh out VPN support a bit more, cleanup service handling
Merge commit '722a5c0462f38827f4097065bfc3826b9e0e9fb4'
* commit '722a5c0462f38827f4097065bfc3826b9e0e9fb4':
Add support for "standalone months" to tztime's strftime().
Added C++-style "//..end-of-line" comments, since I kept trying to use them when writing
test programs.
The biggest known missing piece is global variables.
The idea here is that some languages need a different form of the month
name in constructions like "January 2" than in "January 2009", since the
one in the "January 2" case really means "of January." So with this change,
a format string of "%-B" will use the standalone month, while "%B" will
continue to use the format month.