Commit change made by the add_* methods.
		All previous values with no update will be lost.
		This method is automatically called by the updater thread.

def commit(self):
		"""
		Commit change made by the add_* methods.
		All previous values with no update will be lost.
		This method is automatically called by the updater thread.
		"""

		# Generate index before acquiring lock to keep locked section fast
		# Works because this thread is the only writer of self.pending
		pending_idx = sorted(list(self.pending.keys()), key=lambda k: tuple(int(part) for part in k.split('.')))

		# Commit new data
		try:
			self.lock.acquire()
			self.data=self.pending
			self.pending=dict()
			self.data_idx = pending_idx
		finally:
			self.lock.release()