Finally getting around to the last blog post on here. I guess the last assignment I did was implementing the process class. I thought this was a pretty interesting assignment especially since it kind of gave me an idea of how an API such as Qt would implement their QProcess class. This assignment wasn’t too bad, but figuring out exactly what we needed to do was a little challenging. After getting and understanding of the classes member functions and what they were to do, actually writing the code wasn’t too bad. Getting all the functionality correct was a little bit challenging like when to close the pipes and what would go into the destructor.
For the write our own assignment, I found this to be more challenging than I initially thought it would be. After coming up with the idea, it was a lot more difficult to put it into exact words that would describe precisely the assignment that I wanted. Even coming up with an idea that would implement certain commands and ideas was pretty hard. The grading rubric was probably the hardest of all, as I just wasn’t sure how to give certain points for certain things, a lot of times my mentality is either it works or it doesn’t, and it was hard to come up with point allocations for an in the middle type situation.
For 3574 we got 2 assignments crammed into 2 weeks, thankfully though neither were too difficult. It was nice to get back into a GUI for homework 8. I got everything up and running pretty quickly but I couldn’t get the GUI to update correctly for the longest time. Eventually I figured out that i was still using a posix pthread join which blocked the main thread from updating until the other thread was done calculating prime numbers. I found a function, pthread detach, which didn’t block the main thread but also prevented any zombie threads.
Homework 9 was even easier especially being able to use QThread which was nice. Once I understood how both the semaphores would work and what the mutex would need to lock setting up the consumer/producer threads was easy. I had a little bit of trouble manipulating the buffer array (it had been a while since I had to work with arrays), but after some careful manipulation of pointers to the buffer I was able to get the circular buffer working properly.