<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fetchmany(self,size=-1):
 """ return a sequential set of records. This is guaranteed by locking, 	 so that no other thread can grab a few records while a set is fetched. this has the side effect that other threads may have to wait for an arbitrary long time for the completion of the current request. """

        self._cursorLock.acquire()

        # default value (or just checking that someone did not put a ridiculous size)
        if size < 0 or size > self.MAX_BLOCK_SIZE:
           size = self.arraysize
        recs = []
        for i in range(0,size):
            recs.append(self.fetchone())

        self._cursorLock.release()
        return recs