#ifndef SORT_TASK_MMAP_HPP
#define SORT_TASK_MMAP_HPP

#include <iostream>
#include <algorithm>
#include <unistd.h>
#include <cstdlib>
#include <ctime>
#include "task.hpp"

class SortTask : public Task {
	private:
		int* matrix;
		int n;
	public:
		SortTask(int* mat,int size) : matrix(mat) , n(size) {}


		void execute_task(int worker_id, int worker_count) override{
			srand(time(0)^getpid());

			for(int i=0; i<n; i++) {
				if(i%worker_count == worker_id%worker_count) {

//					int delay = 1+rand()%3;
					std::cout<<"PID " << getpid() << " PPID " << getppid()
						 <<" [Worker " << worker_id << " ] \n";
//					sleep(delay);

					int* row_start= matrix+(i*n);
					std::sort(row_start, row_start+n);
				}
			}
		}
						  
};

#endif
