1461134251-7d5dc619-41b6-45c1-a513-86fac37dd639

1. A method for using finalizable objects in transactions in a software transactional memory system operating on a computing device, comprising the steps of:
providing a software transactional memory system in a managed code environment comprising a garbage collector that reclaims memory used by a transaction, the software transactional memory system controls access to shared memory in a concurrent computing system;
providing a to-be-finalized set for the transaction in the software transactional memory system that supports allocation of finalizable objects inside the transaction to indicate to the garbage collector that a particular one or more of the objects are eligible for finalization;
allocating a finalizable object within the transaction;
placing an object into the to-be-finalized set for the transaction upon allocation of the finalizable object;
determining whether the transaction is to be committed;
if the transaction is to be committed, determining whether the transaction is a closed, flattened or parallel nesting transaction; and
if the transaction is a closed, flattened or parallel nesting transaction, copying contents of the to-be-finalized set for the transaction to a to-be-finalized set of a parent transaction of the transaction
if the transaction is not a closed, flattened or parallel nesting transaction, traversing contents of the to-be-finalized set for the transaction setting an indicator to indicate the finalizable object is eligible for finalization by the garbage collector;
if the transaction is not to be committed, determining whether the transaction is to be rolled back; and, if the transaction is to be rolled back, discarding contents of the to-be-finalized set for the transaction.
2. The method of claim 1, wherein if a request is made from the transaction to suppress a finalization operation for a particular object created within the transaction, the particular object is removed from the to-be-finalized set for the transaction.
3. The method of claim 1, wherein if a request is made from the transaction to re-register for a finalize operation for a particular object created within the transaction, the particular object is added to the to-be-finalized set for the transaction.
4. The method of claim 1, wherein if a request is made from the transaction to suppress a finalization operation for a particular object that was not created within the transaction, then a REDO action results.
5. The method of claim 1, wherein if a request is made from the transaction to re-register for a finalize operation for a particular object that was not created within the transaction, then a REDO action results.
6. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 1.
7. A computer-readable medium having computer-executable instructions for causing a computer to perform steps comprising:
provide a software transactional memory system in a managed code environment comprising a garbage collector that reclaims memory used by a transaction, the software transactional memory system supports allocation of finalizable objects inside a transaction;
provide a to-be-finalized set for a transaction;
allocate a finalizable object within the transaction;
place an object into the to-be-finalized set for the transaction upon allocation of the finalizable object within the transaction;
determining whether the transaction is to be committed;
if the transaction is to be committed, determining whether the transaction is a closed, flattened or parallel nesting transaction; and
if the transaction is a closed, flattened or parallel nesting transaction, copying contents of the to-be-finalized set for the transaction to a to-be-finalized set of a parent transaction of the transaction
if the transaction is not a closed, flattened or parallel nesting transaction, traversing contents of the to-be-finalized set for the transaction setting an indicator to indicate the finalizable object is eligible for finalization by the garbage collector;
if the transaction is not to be committed, determining whether the transaction is to be rolled back; and, if the transaction is to be rolled back, discarding contents of the to-be-finalized set for the transaction.
8. A method for using finalizable objects in transactions in a software transactional memory system operating on a computing device, comprising the steps of:
providing a software transactional memory system in a managed code environment comprising a garbage collector that reclaims memory used by a transaction, the software transactional memory system supports allocation of finalizable objects inside a transaction;
creating a to-be-finalized set for a transaction;
whenever a finalizable object is allocated while a transaction is alive, placing the finalizable object into the to-be-finalized set for the transaction; and
if the transaction is ready to commit, determining whether the transaction is a closed, flattened or parallel nesting transaction;
if the transaction is a closed, flattened or parallel nesting transaction, copying contents of the to-be-finalized set for the transaction to a to-be-finalized set of a parent transaction of the transaction; and
if the transaction is an open nested or non-nested transaction, then traversing the to-be-finalized set and setting a finalize indicator for each object to indicate to the garbage collector that each object is eligible to finalize
if the transaction is not a closed, flattened or parallel nesting transaction, traversing contents of the to-be-finalized set for the transaction setting an indicator to indicate the finalizable object is eligible for finalization by the garbage collector;
if the transaction is not ready to be committed, determining whether the transaction is to be rolled back; and, if the transaction is to be rolled back, discarding contents of the to-be-finalized set for the transaction.
9. The method of claim 8, further comprising:
if the transaction is ready to commit, performing at least one other task associated with the commit.
10. The method of claim 8, further comprising:
if the transaction is ready to rollback, performing at least one other task associated with the rollback.
11. The method of claim 8, wherein the finalize indicator is set to a value of True for each object in the to-be-finalized set to indicate when each object is ready to be finalized.
12. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 8.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1-6. (canceled)
7. A light-emitting device comprising:
a wireless communication unit that performs wireless communication with another device;
a light-emitting unit that emits light; and
a control unit configured to perform control by switching between a mode in which light emission of the light-emitting unit is a broadcast mode and a mode in which the light emission of the light-emitting unit is an ID separation mode.
8. The light-emitting device according to claim 7, wherein the broadcast mode and the ID separation mode are modes in which the another device transmits a driving signal and controls the light-emitting device.
9. The light-emitting device according to claim 7, wherein the broadcast mode is a mode in which the light-emitting unit is controlled the same as all other light-emitting devices in a predetermined area.
10. The light-emitting device according to claim 9, wherein the control of the light-emitting unit includes emission color, luminance, and turn-onoff time.
11. The light-emitting device according to claim 7, wherein the ID separation mode is a mode in which the light-emitting device is controlled differently than other light-emitting devices within a predetermined area for each ID allocated to each light-emitting device.
12. The light-emitting device according to claim 11, wherein control of the ID separation mode is performed so that emission color, luminance and turn-onoff time is different for each light-emitting device in the predetermined area.
13. The light-emitting device according to claim 7, wherein an acquire unit acquires a user’s operation of the light-emitting device.
14. The light-emitting device according to claim 7, further including a manual mode.
15. The light-emitting device according to claim 14, wherein the manual mode is started after the light-emitting device is turned on.
16. The light-emitting device according to claim 7, wherein the control unit performs control by switching between a mode in which the light emission of the light-emitting unit is controlled based on a signal received by the wireless communication unit, and a mode in which the light-emitting unit, in accordance with an input to a user operation based on whether the wireless communication unit receives a signal from the another device within a predetermined time.
17. A light-emitting method for a light-emitting device comprising the steps of:
a wireless communication step that performs wireless communication with another device;
a light-emitting step that emits light by a light-emitting unit; and
a control step configured to perform control by switching between a mode in which light emission of the light-emitting unit is a broadcast mode and a mode in which the light emission of the light-emitting unit is an ID separation mode.
18. The light-emitting method according to claim 17, wherein the broadcast mode is a mode in which all light-emitting devices within a predetermined area are controlled the same.
19. The light-emitting method according to claim 18, wherein the control of the light-emitting device includes emission color, luminance, and turn-onoff time.
20. The light-emitting method according to claim 17, wherein the broadcast mode and the ID separation mode are modes in which the another device transmits a driving signal and controls the light-emitting device.
21. The light-emitting method according to claim 17, wherein the ID separation mode is a mode in which the light-emitting device is controlled differently than other light-emitting devices within a predetermined area for each ID allocated to each light-emitting device.
22. The light-emitting method according to claim 21, wherein control of the ID separation mode is performed so that emission color, luminance and turn-onoff time is different for each light-emitting device in the predetermined area.
23. The light-emitting method according to claim 17, wherein an acquire unit acquires a user’s operation of the light-emitting device.
24. The light-emitting method according to claim 17, further including a manual mode.
25. The light-emitting method according to claim 24, wherein the manual mode is started after the light-emitting device is turned on.
26. The light-emitting method according to claim 17, wherein the control step performs control by switching between a mode in which the light emission of the light-emitting unit is controlled based on a signal received by a wireless communication unit, and a mode in which the light-emitting unit, in accordance with an input to a user operation based on whether the wireless communication unit receives a signal from the another device within a predetermined time.
27. A computer program embodied on a non-transitory-computer readable medium for a light-emitting device comprising the steps of:
a wireless communication step that performs wireless communication with another device;
a light-emitting step that emits light by a light-emitting unit; and
a control step configured to perform control by switching between a mode in which light emission of the light-emitting unit is a broadcast mode and a mode in which the light emission of the light-emitting unit is an ID separation mode.
28. A computer program according to claim 27, wherein the broadcast mode is a mode in which all light-emitting devices within a predetermined area are controlled the same.
29. A computer program according to claim 28, wherein the control of the light-emitting device includes emission color, luminance, and turn-onoff time.
30. A computer program according to claim 27, wherein the broadcast mode and the ID separation mode are modes in which the another device transmits a driving signal and controls the light-emitting device.
31. A computer program according to claim 27, wherein the ID separation mode is a mode in which the light-emitting device is controlled differently than other light-emitting devices within a predetermined area for each ID allocated to each light-emitting device.
32. A computer program according to claim 31, wherein control of the ID separation mode is performed so that emission color, luminance and turn-onoff time is different for each light-emitting device in the predetermined area.
33. A computer program according to claim 27, wherein an acquire unit acquires a user’s operation of the light-emitting device.
34. A computer program according to claim 27, further including a manual mode.
35. A computer program according to claim 34, wherein the manual mode is started after the light-emitting device is turned on.
36. A computer program according to claim 27, wherein the control step performs control by switching between a mode in which the light emission of the light-emitting unit is controlled based on a signal received by a wireless communication unit, and a mode in which the light-emitting unit, in accordance with an input to a user operation based on whether the wireless communication unit receives a signal from the another device within a predetermined time.