I'm coming from a C++ background so I'm not too used to garbage
collection and it's implications. I have a function that creates
a std.socket.Socket using new and connects to a tcp server, and
writes some stuff to it. I then explicitly close the socket, and
the socket object goes out of scope.
I assume that I do need to explicitly call close on the socket as
there is no deterministic destructor for class objects. I further
assume that the runtime will garbage collect any memory allocated
to the socket object at a later time.
Am I doing this right with GC? In C++ I'd ensure that the Socket
class had a destructor that closed the socket and I'd also assume
that once it went out of scope there was no memory left
allocated. In D am I right to assume I need to manually close the
socket but there is no need to worry about the memory?
Now the issue is that I now need to call this function more than
once every second. I worry that it will create large amounts of
uncollected "garbage" which will eventually lead to problems.
Am I doing this right? Or is there a better way to do this in D?
Thanks.