Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: Athas/topics-report
base: 966977161d
...
head fork: Athas/topics-report
compare: a3672e89eb
Checking mergeability… Don't worry, you can still create the pull request.
  • 2 commits
  • 1 file changed
  • 0 commit comments
  • 1 contributor
Showing with 19 additions and 9 deletions.
  1. +19 −9 presentation.tex
View
28 presentation.tex
@@ -242,15 +242,6 @@ \subsection{What}
% This is different than MVar as you can write that multiple times.
\end{frame}
-% TODO: Not sure this is actually true
-% \begin{frame}
-% \frametitle{Par Monad - IVar vs. MVar}
-% \begin{itemize}
-% \item IVar: One-to-Many communication
-% \item MVar: One-to-One communication
-% \end{itemize}
-% \end{frame}
-
\begin{frame}[fragile]
\frametitle{Par Monad - Example}
\begin{lstlisting}[language=Haskell]
@@ -284,4 +275,23 @@ \subsection{What}
\begin{frame}
\frametitle{EDI backend for monad-par}
\end{frame}
+
+\begin{frame}[fragile]
+
+ \frametitle{Opt-out of memory leak}
+
+ \textbf{Solution}: Extend the Par Monad with a \texttt{freeIVar} function.
+
+ \begin{lstlisting}[language=Haskell]
+freeIVar :: IVar a -> Par ()
+freeIVar ivar = Par $ sendWith rseq
+ (iVarChan ivar)
+ Data
+ \end{lstlisting}
+
+ This closes the stream; if anyone tries to read from the channel it
+ will cause a run-time error.
+
+\end{frame}
+
\end{document}

No commit comments for this range

Something went wrong with that request. Please try again.