Make sdcard daemon multi-threaded.
The essential idea here is that a handler thread only needs to hold a lock on the global node table while it is manipulating nodes. The actual I/O operation is then performed without holding any locks. By default, we use 2 threads but this can be configured on the command-line. Work is sheduled somewhat arbitrarily by the handler threads. Whichever thread happens to read() the next request first wins the right process it. This policy is very simple but potentially wastes threads when there isn't much work to be done. We can always improve this later if needed. Change-Id: Id27a27c2c9b40d4f8e35a6bef9dd84f0dfacf337
This commit is contained in:
parent
fc1e1a0ab4
commit
6249b9009f
2 changed files with 639 additions and 596 deletions
|
@ -4,6 +4,7 @@ include $(CLEAR_VARS)
|
|||
|
||||
LOCAL_SRC_FILES:= sdcard.c
|
||||
LOCAL_MODULE:= sdcard
|
||||
LOCAL_CFLAGS := -Wall -Wno-unused-parameter
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := libc
|
||||
|
||||
|
|
1234
sdcard/sdcard.c
1234
sdcard/sdcard.c
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue