1461126596-ffc912ac-dc05-470d-ba00-b303b5a98e24

1. A method for providing concurrent read and write access to a linked list of elements for execution on a computing device comprising a processor and a memory, the method comprising:
storing in the memory of the computing device a linked list, the linked list including three internal lists and at least an updated indicator, wherein each element in the linked list includes at least a first link of a plurality of first links, a second link of a plurality of second links, and a third link of a plurality of third links, and a first internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of first links, a second internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of second links, and a third internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of third links;
providing read access to the linked list to a reader process such that the reader process reads elements in the linked list via a read list of the three internal lists, wherein the read list comprises the first internal list;
providing write access to the linked list to a writer process such that the writer process updates the linked list via a write list of the three internal lists, wherein the write list comprises the third internal list;
when the writer process updates the linked list by swapping an updated version of the linked list with the second internal list, setting at least the updated indicator, wherein the updated version of the linked list includes updates to the elements of the linked list provided by the writer process;
deferring updating of the read list to include the updated version of the linked list until the read process is completed, wherein the second internal list is swapped with the read list when the reader process is completed and at least the updated indicator is set, wherein the read access by the reader process and the write access by the writer process occur substantially concurrently; and
receiving an update instruction from the writer process to further update the linked list according to the update instruction, wherein the writer process updates the linked list by swapping a second updated version of the linked list with the second internal list comprising the updated version of the linked list, and wherein receiving the update instruction from the writer process to update the linked list comprises:
determining whether the updated indicator is set, wherein the set updated indicator indicates that the second internal list is updated and ready for swapping with the read list; and
when it is determined that the updated indicator is set and the read process is completed, atomically swapping the read list and the second internal list.
2. The method of claim 1, wherein:
when the writer process updates the linked list by swapping the updated version of the linked list with the second internal list, the updates to the elements of the linked list are stored as pending operations and, after the swapping, the write list comprises a new write list, the method further comprising:
determining whether the new write list comprises the read list prior to swapping with the second internal list; and
when it is determined that the new write list comprises the read list prior to the swapping with the second internal list, applying the pending operations to the new write list.
3. The method of claim 1, wherein the updated indicator is stored among a plurality of values stored in a head element of the elements of the linked list.
4. The method of claim 1, wherein when the write access of the writer process to the linked list is released and the read process is not completed, setting the updated indicator, and wherein the pending operations are finalized after the read process is completed.
5. A computing device storing a linked list providing substantially concurrent read and write access to the linked list, the computing device comprising:
a processor;
a memory;
an operating system; and
an executable module executing on the computing device and configuring the computing device to:
store in the memory a linked list including three internal lists, wherein each element in the linked list includes at least a first link of a plurality of first links, a second link of a plurality of second links, and a third link of a plurality of third links, and a first internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of first links, a second internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of second links, and a third internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of third links;
provide an updated indicator for indicating whether the second internal list of the three internal lists is updated and ready for swapping with a read list of the three internal lists, wherein the read list comprises the first internal list;
provide read access to the linked list to a reader process such that the reader process accesses elements in the linked list according to the read list;
provide write access to the linked list to a writer process such that the writer process updates elements in the linked list via a write list of the three internal lists, wherein the write list comprises the third internal list;
when the writer process updates the linked list by swapping an updated version of the linked list with the second internal list, set at least the updated indicator, wherein the updated version of the linked list includes updates to the elements of the linked list provided by the writer process;
defer updating of the read list to include the updated version of the linked list until the read process is completed, wherein the second internal list is swapped with the read list when the reader process is completed and at least the updated indicator is set; and
receive an update instruction from the writer process to further update the linked list according to the update instruction, wherein the writer process updates the linked list by swapping a second updated version of the linked list with the second internal list comprising the updated version of the linked list;

wherein the computing device is further configured to receive the update instruction from the writer process to update the linked list, and in response:
determine whether the updated indicator is set, wherein the set updated indicator indicates that the second internal list is updated and ready for swapping with the read list; and
when it is determined that the updated indicator is set and the read process is completed, atomically swap the read list and the second internal list; and
after the second internal list is swapped with the read list, modifying the updated indicator to indicate that the second internal list is not updated and is not available for swapping with the read list.
6. The computing device of claim 5, wherein: when the writer process updates the linked list by swapping the updated version of the linked list with the second internal list, the updates to the elements of the linked list are stored as pending operations and, after the swapping, the write list comprises a new write list, and wherein the computing device is configured to determine whether the new write list the read list prior to swapping with the second internal list; and
when it is determined that the new write list comprises the read list prior to the swapping with the second internal list, to apply the pending operations to the new write list.
7. The computing device of claim 6, wherein when the write access of the writer process to the linked list is released and the read process is not completed, the computing device sets the updated indicator, and wherein the pending operations are finalized after the read process is completed.
8. The computing device of claim 5, wherein the updated indicator is stored among a plurality of values stored in a head element of the elements of the linked list.
9. The computing device of claim 5, wherein the computing device is configured to modify the updated indicator to indicate that the second internal list is not updated and is not available for swapping with the read list after the second internal list is swapped with the read list.
10. A computer-readable storage medium having stored thereon computer-executable instructions that, when executed on a computing device comprising a processor and a memory, carry out a method for storing in the memory of the computing device a linked list supporting substantially concurrent read and write access, the method comprising:
storing a linked list, the linked list including three internal lists and at least an updated indicator, wherein each element in the linked list includes at least a first link of a plurality of first links, a second link of a plurality of second links, and a third link of a plurality of third links, and a first internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of first links, a second internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of second links, and a third internal list of the three internal lists comprises elements of the elements of the linked list referenced by the plurality of third links;
providing read access to the linked list to a reader process such that the reader process reads elements in the linked list via a read list of the three internal lists, wherein the read list comprises the first internal list;
providing write access to the linked list to a writer process such that the writer process updates the linked list via a write list of the three internal lists, wherein the write list comprises the third internal list;
when the writer process updates the linked list by swapping an updated version of the linked list with the second internal list, setting at least the updated indicator, wherein the updated version of the linked list includes updates to the elements of the linked list provided by the writer process;
deferring updating of the read list to include the updated version of the linked list until the read process is completed, wherein the second internal list is swapped with the read list when the reader process is completed and at least the updated indicator is set, wherein the read access by the reader process and the write access by the writer process occur substantially; and
receiving an update instruction from the writer process to further update the linked list according to the update instruction, wherein the writer process updates the linked list by swapping a second updated version of the linked list with the second internal list comprising the updated version of the linked list, and wherein receiving the update instruction from the writer process to update the linked list comprises:
determining whether the updated indicator is set, wherein the set updated indicator indicates that the second internal list is updated and ready for swapping with the read list; and
when it is determined that the updated indicator is set and the read process is completed, atomically swapping the read list and the second internal list.
11. The tangible computer-readable storage medium of claim 10, wherein:
when the writer process updates the linked list by swapping the updated version of the linked list with the second internal list, the updates to the elements of the linked list are stored as pending operations and, after the swapping, the write list comprises a new write list, the method further comprising:
determining whether the new write list comprises the read list prior to swapping with the second internal list; and
when it is determined that the new write list comprises the read list prior to the swapping with the second internal list, applying the pending operations to the new write list.
12. The tangible computer-readable storage medium of claim 10, wherein the updated indicator is stored among a plurality of values stored in a head element of the elements of the linked list.

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. A self-sealing flexible metal hose, which comprises:
a) a continuous band, which includes:
1) a leading edge;
2) a trailing edge;
3) a double-folded receiver assembly with inner and outer receiver assembly legs;
4) a double-folded insert assembly with inner and outer insert assembly legs; and
5) a sealing flange extending downstream from the insert assembly;

b) said insert assembly being slidably received within said receiver assembly for providing flexibility of said hose;
c) said band being spiral-wound with said assemblies interlocking on adjacent windings of said band; and
d) said flange engaging the band of an adjacent winding and providing multiple continuous contacts therealong.

1461126587-fa603411-fb76-445c-a8a4-ecbf41a88692

1. A method for providing assistive technology during interactive computer use, the method comprising:
monitoring a plurality of interactions of a user with a computer system and collecting data relating to the interactions of the user by an assistive tool executing on a processor;
analyzing, by the assistive tool, the collected data to build and store a plurality of patterns of the interactions of the user;
detecting a delay in a current activity of the user on the computer system;
retrieving data relating to one or more prior interactions that the user has carried out;
matching the retrieved data with the stored patterns of the interactions of the user;
determining one or more probable next steps in the current activity of the user based on the matching; and
suggesting, by the assistive tool, at least one of the one or more probable next steps to the user.
2. The method as claimed in claim 1, wherein the monitoring and analyzing are carried out dynamically to update the stored patterns and create new patterns based on on-going monitoring of the interactions of the user.
3. The method as claimed in claim 1, wherein analyzing the collected data includes calculating an average speed of the interactions of the user and using the average speed in detecting a delay in the current activity of the user.
4. The method as claimed in claim 1, wherein analyzing the collected data includes dividing the collected data into logical blocks of user actions and building and storing patterns of the logical blocks.
5. The method as claimed in claim 4, wherein analyzing the collected data includes determining a probability that a logical block follows at least one of the patterns of the logical blocks.
6. The method as claimed in claim 1, wherein retrieving data relating to one or more prior interactions retrieves recently monitored data and divides it into logical blocks of user actions.
7. The method as claimed in claim 1, wherein the patterns of the interactions of the user include time windows during which the patterns are carried out by the user.
8. The method as claimed in claim 1, wherein if the matching results in more than one stored pattern, selecting a stored pattern based on a probability of the pattern matching the retrieved data.
9. A system for providing assistive technology during interactive computer use, comprising:
an assistive tool comprising a plurality of instructions stored in a system memory that when executed by a processor of the system implements a plurality of components comprising:
a monitoring component for monitoring a plurality of interactions of a user with a computer system and collecting data relating to the interactions of the user;
a data analysis component for analyzing the collected data to build and store a plurality of patterns of the interactions of the user;
a delay detection component for detecting a delay in a current activity of the user;
a current activity component for retrieving data relating to one or more prior interactions that the user has carried out;
a pattern matching component for matching the retrieved data with stored patterns of the interactions of the user and determining one or more probable next steps in the current activity of the user; and
a suggestion component for suggesting at least one of the one or more probable next steps to the user.
10. The system as claimed in claim 9, wherein the monitoring component and the data analysis component monitor and analyze the data dynamically to update the stored patterns and create new patterns based on on-going monitoring of the interactions of the user.
11. The system as claimed in claim 9, wherein the data analysis component for analyzing the collected data includes calculating an average speed of the interactions of the user and using the average speed in detecting a delay in the current activity of the user.
12. The system as claimed in claim 9, wherein the data analysis component for analyzing the collected data includes dividing the collected data into logical blocks of user actions and building and storing patterns of the logical blocks.
13. The system as claimed in claim 12, wherein the data analysis component for analyzing the collected data includes determining a probability that a logical block follows at least one of the patterns of the logical blocks.
14. The system as claimed in claim 9, wherein the current activity component for retrieving monitored data relating to one or more prior interactions retrieves recently monitored data and divides it into logical blocks of user actions.
15. The system as claimed in claim 9, wherein the patterns of the interactions of the user include time windows during which the patterns are carried out by the user.
16. The system as claimed in claim 9, wherein the pattern matching component is for selecting a stored pattern based on a probability of the pattern matching the retrieved data.
17. A computer program product for providing assistive technology during interactive computer use, the computer program product comprising: a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
monitoring a plurality of interactions of a user with a computer system and collecting data relating to the interactions of the user;
analyzing the collected data to build and store a plurality of patterns of the interactions of the user;
detecting a delay in a current activity of the user on the computer system;
retrieving data relating to one or more prior interactions that the user has carried out;
matching the retrieved data with the stored patterns of the interactions of the user;
determining one or more probable next steps in the current activity of the user based on the matching; and
suggesting at least one of the one or more probable next steps to the user.
18. The computer program product as claimed in claim 17, wherein the monitoring and analyzing are carried out dynamically to update the stored patterns and create new patterns based on on-going monitoring of the interactions of the user.
19. The computer program product as claimed in claim 17, wherein analyzing the collected data includes calculating an average speed of the interactions of the user and using the average speed in detecting a delay in the current activity of the user.
20. The computer program product as claimed in claim 17, wherein analyzing the collected data includes dividing the collected data into logical blocks of user actions and building and storing patterns of the logical blocks.

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. A stamp comprising:
a transparent body having an inner chamber containing an inletoutlet tube configured to have a fluid injected and removed therefrom.
2. The stamp of claim 1, wherein the transparent body is formed of a material capable of being internally processed by using a laser to form the inner chamber and the inletoutlet tube on the inside of the transparent body.
3. The stamp of claim 1, wherein the transparent body is formed of quartz.
4. The stamp of claim 1, wherein the inner chamber has a shape in which at least a portion of a surface of the inner chamber is one of flat, convex, and concave, if the fluid is not injected.
5. The stamp of claim 1, wherein the inner chamber has a circular or polygonal shape.
6. The stamp of claim 1, wherein the stamp is configured for use in a nanoimprint process.
7. A method of fabricating a stamp, the method comprising:
internally processing a transparent body by using a laser to form an inner chamber in the transparent body; and
forming in the transparent body an inletoutlet tube configured to have a fluid injected and removed therefrom.
8. The method of claim 7, wherein the internal processing is performed by using a femtosecond laser.
9. The method of claim 7, wherein the transparent body is formed of a material capable of being internally processed by using a laser to form the inner chamber and the inletoutlet tube on the inside of the transparent body.
10. The method of claim 7, wherein the transparent body is formed of quartz.
11. The method of claim 7, wherein the inner chamber has a shape in which at least a portion of a surface of the inner chamber is one of flat, convex, and concave, if the fluid is not injected.
12. The method of claim 7, wherein the inner chamber has a circular or polygonal shape.
13. The method of claim 7, wherein the stamp is configured for use in a nanoimprint process.
14. An imprint method comprising:
injecting a fluid into the inner chamber of the stamp of claim 1 to increase an internal pressure of the inner chamber and thus to inflate the transparent body of the stamp;
coating a resin on a substrate; and
contacting the stamp, in which the transparent body is inflated, with the substrate coated with the resin.
15. The imprint method of claim 14, wherein the transparent body is formed of a material capable of being internally processed by using a laser to form the inner chamber and the inletoutlet tube on the inside of the transparent body.
16. The imprint method of claim 14, wherein the transparent body is formed of quartz.
17. The imprint method of claim 14, wherein the inner chamber has a shape in which at least a portion of a surface of the inner chamber is one of flat, convex, and concave, if the fluid is not injected.
18. The imprint method of claim 14, wherein the inner chamber has a circular or polygonal shape.
19. The imprint method of claim 14, further comprising:
reducing the pressure of the inner chamber of the transparent body after the stamp contacts the substrate coated with the resin.
20. The imprint method of claim 14, wherein the stamp is for a nanoimprint process.